#include <stdio.h>
#include <stdlib.h>
#include <math.h>

struct mountain{
	int h;
	int good;
};

int main(void){
	int n,m,i,h,a,b,x;
	
	struct mountain mt[100001];
	
	scanf("%d %d",&n,&m);
	
	//get h
	for(i=1;i<=n;i++){
		scanf("%d",&h);
		mt[i].h = h;
		mt[i].good = 1;
	}
	
	//get load
	for(i=1;i<=m;i++){
		scanf("%d %d",&a,&b);
		if(mt[a].h > mt[b].h)
			mt[b].good = 0;
		else if(mt[a].h < mt[b].h)
			mt[a].good = 0;
		else if(mt[a].h == mt[b].h){
			mt[a].good=0;
			mt[b].good=0;
		}
	}
	
	x=0;
	for(i=1;i<=n;i++){
		if(mt[i].good)	x++;
	}
	
	printf("%d\n",x);
	
	return 0;
}