#include <bits/stdc++.h>
using namespace std;
const int N = 1e6;
struct node {
  int a, id, l;
} e[N];
int nm[N], ans[N], n, k;
inline int cmp(node x, node y) { return x.a < y.a; }
int main() {
  scanf("%d%d", &n, &k);
  for (register int i = 1; i <= n; ++i) {
    scanf("%d", &e[i].a);
    e[i].id = i;
  }
  for (register int i = 1; i <= k; ++i) {
    int a, b;
    scanf("%d%d", &a, &b);
    if (e[a].a != e[b].a) {
      if (e[a].a > e[b].a) ans[a]--;
      if (e[b].a > e[a].a) ans[b]--;
    }
  }
  sort(e + 1, e + n + 1, cmp);
  int st = 0;
  for (register int i = 1; i <= n; ++i) {
    if (e[i].a != e[i - 1].a) st = i;
    ans[e[i].id] += st - 1;
  }
  for (register int i = 1; i <= n; ++i) printf("%d ", ans[i]);
  return 0;
}
