#include <bits/stdc++.h>
using namespace std;
int que[300005], a[500005];
struct {
  int ui, vi;
} abol[500005];
void input(int n, int m) {
  for (int i = 1; i <= n; i++) scanf("%d", &que[i]);
  for (int i = 1; i <= m; i++) {
    scanf("%d%d", &abol[i].ui, &abol[i].vi);
    a[abol[i].ui]++;
  }
}
int fun(int n, int m) {
  int k = n, j;
  for (int i = 1; i <= m; i++) {
    if (abol[i].vi == que[n]) {
      j = 1;
      for (int flag1 = 1, flag2; j <= n; j++) {
        if (flag1) {
          if (abol[i].ui == que[j])
            if (a[abol[i].ui] == n - j) {
              flag1 = 0;
            }
        } else {
          flag2 = 0;
          for (int t = 1; t <= m; t++)
            if (que[j] == abol[t].vi) {
              flag2 = 1;
              break;
            }
        }
        if (!flag2) break;
      }
      if (j == n + 1) k--;
    }
  }
  return n - k;
}
int main() {
  int n, m;
  scanf("%d%d", &n, &m);
  input(n, m);
  printf("%d\n", fun(n, m));
  return 0;
}
