"use strict";

const main = arg => {
    const inputList = arg.trim().split("\n");
  // 回答を記述
  const N = parseInt(inputList[0].split(' ')[0]);
  // [高さ, 隣より高いbool]
  const peaks = inputList[1].split(' ').map(ele => parseInt(ele)).map(ele => [ele, true]);
  // 道のリスト（idx >= 2）から隣以下の高さであればboolをfalseにする
  for (let i = 2; i < inputList.length; i++) {
    const AB = inputList[i].split(' ');
    if (peaks[AB[0] - 1][0] <= peaks[AB[1] - 1][0] ) peaks[AB[0] - 1][1] = false;
    if (peaks[AB[0] - 1][0] >= peaks[AB[1] - 1][0] ) peaks[AB[1] - 1][1] = false;
  }
  // 高いbool == true　の要素数を出力する
  console.log(peaks.filter(ele => ele[1] == true).length)

}

main(require('fs').readFileSync('/dev/stdin', 'utf8'));