#include <bits/stdc++.h>
#include<vector>
#include <map>
#include<deque>
#include<queue>
#include <iostream>
#include<cmath>
#include<algorithm>
#define ll long long
using namespace std;
bool cmd(pair<ll, pair<ll, ll>> a, pair<ll, pair<ll, ll>> b) {
    return a.second.first < b.second.first;
}
bool ok(ll mid, ll x, vector<ll>v) {
    sort(v.begin(), v.end());
    ll count = 0,sum=0;
    for (ll i = 0; i < v.size(); i++) {
        if (sum + v[i] > x) {
            count++;
            sum = 0;
        }
        sum += v[i];
    }
    //cout << "ok\n";
    return (count <= mid);
}
 
int main() {
    ios::sync_with_stdio(0);
    cin.tie(NULL), cout.tie(NULL);
    //freopen("mex.in", "r", stdin);
 
    ll t = 1;//cin >> t;
    while (t--) {
        ll n, q;
        cin >> n >> q;
        vector<pair<ll, pair<ll, ll>>>v(n);
        map<ll, ll>mp;
        for (ll i = 0; i < n; i++) {
            cin >> v[i].first;
            v[i].second.first = i;
        }
        while (q--) {
            ll x, y;
            cin >> x >> y;
            if (v[x - 1] > v[y - 1])v[x - 1].second.second--;
            else if (v[x - 1] < v[y - 1]) 
                v[y - 1].second.second--;
        }
        sort(v.begin(), v.end());
        for (ll i = 0; i < n; i++) {
            v[i].second.second += i;
            if (mp[v[i].first])v[i].second.second -= mp[v[i].first];
            mp[v[i].first]++;
 
        }
        sort(v.begin(), v.end(), cmd);
        for (ll i = 0; i < n; i++) {
            cout << max(v[i].second.second,0LL) << " ";
        }
    }
 
    return 0;
}
/*a
 
*/
				I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlPHZlY3Rvcj4KI2luY2x1ZGUgPG1hcD4KI2luY2x1ZGU8ZGVxdWU+CiNpbmNsdWRlPHF1ZXVlPgojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlPGNtYXRoPgojaW5jbHVkZTxhbGdvcml0aG0+CiNkZWZpbmUgbGwgbG9uZyBsb25nCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmJvb2wgY21kKHBhaXI8bGwsIHBhaXI8bGwsIGxsPj4gYSwgcGFpcjxsbCwgcGFpcjxsbCwgbGw+PiBiKSB7CiAgICByZXR1cm4gYS5zZWNvbmQuZmlyc3QgPCBiLnNlY29uZC5maXJzdDsKfQpib29sIG9rKGxsIG1pZCwgbGwgeCwgdmVjdG9yPGxsPnYpIHsKICAgIHNvcnQodi5iZWdpbigpLCB2LmVuZCgpKTsKICAgIGxsIGNvdW50ID0gMCxzdW09MDsKICAgIGZvciAobGwgaSA9IDA7IGkgPCB2LnNpemUoKTsgaSsrKSB7CiAgICAgICAgaWYgKHN1bSArIHZbaV0gPiB4KSB7CiAgICAgICAgICAgIGNvdW50Kys7CiAgICAgICAgICAgIHN1bSA9IDA7CiAgICAgICAgfQogICAgICAgIHN1bSArPSB2W2ldOwogICAgfQogICAgLy9jb3V0IDw8ICJva1xuIjsKICAgIHJldHVybiAoY291bnQgPD0gbWlkKTsKfQoKaW50IG1haW4oKSB7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoTlVMTCksIGNvdXQudGllKE5VTEwpOwogICAgLy9mcmVvcGVuKCJtZXguaW4iLCAiciIsIHN0ZGluKTsKCiAgICBsbCB0ID0gMTsvL2NpbiA+PiB0OwogICAgd2hpbGUgKHQtLSkgewogICAgICAgIGxsIG4sIHE7CiAgICAgICAgY2luID4+IG4gPj4gcTsKICAgICAgICB2ZWN0b3I8cGFpcjxsbCwgcGFpcjxsbCwgbGw+Pj52KG4pOwogICAgICAgIG1hcDxsbCwgbGw+bXA7CiAgICAgICAgZm9yIChsbCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICAgICBjaW4gPj4gdltpXS5maXJzdDsKICAgICAgICAgICAgdltpXS5zZWNvbmQuZmlyc3QgPSBpOwogICAgICAgIH0KICAgICAgICB3aGlsZSAocS0tKSB7CiAgICAgICAgICAgIGxsIHgsIHk7CiAgICAgICAgICAgIGNpbiA+PiB4ID4+IHk7CiAgICAgICAgICAgIGlmICh2W3ggLSAxXSA+IHZbeSAtIDFdKXZbeCAtIDFdLnNlY29uZC5zZWNvbmQtLTsKICAgICAgICAgICAgZWxzZSBpZiAodlt4IC0gMV0gPCB2W3kgLSAxXSkgCiAgICAgICAgICAgICAgICB2W3kgLSAxXS5zZWNvbmQuc2Vjb25kLS07CiAgICAgICAgfQogICAgICAgIHNvcnQodi5iZWdpbigpLCB2LmVuZCgpKTsKICAgICAgICBmb3IgKGxsIGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgIHZbaV0uc2Vjb25kLnNlY29uZCArPSBpOwogICAgICAgICAgICBpZiAobXBbdltpXS5maXJzdF0pdltpXS5zZWNvbmQuc2Vjb25kIC09IG1wW3ZbaV0uZmlyc3RdOwogICAgICAgICAgICBtcFt2W2ldLmZpcnN0XSsrOwogICAgICAgICAgICAKICAgICAgICB9CiAgICAgICAgc29ydCh2LmJlZ2luKCksIHYuZW5kKCksIGNtZCk7CiAgICAgICAgZm9yIChsbCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICAgICBjb3V0IDw8IG1heCh2W2ldLnNlY29uZC5zZWNvbmQsMExMKSA8PCAiICI7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAwOwp9Ci8qYQoKKi8=