#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
#define fast ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define f(i,k,n) for(ll i=k;i<n;i++)
#define fr(i,n,k) for(ll i=n-1;i>=k;i--)
#define pb push_back
#define mxe(v) *max_element(v.begin(),v.end())
#define mne(v) *min_element(v.begin(),v.end())
#define bs binary_search
#define lb lower_bound
#define ub upper_bound
#define ve vector
int main() {
fast
ll t=1; //cin>>t;
while(t--){
ll n,m,k; cin>>n>>m>>k;
ll a[n+1],x,y; f(i,1,n+1) {cin>>a[i];}
ve<pair<ll,ll>>v[n+1];
f(i,0,m) {cin>>x>>y; v[x].pb({a[y],y}); v[y].pb({a[x],x});}
f(i,1,n+1) {sort(v[i].begin(),v[i].end());}
f(i,1,n+1) {
if(v[i].size()<k) {cout<<"-1"<<endl;}
else {cout<<v[i][v[i].size()-k].second<<endl;}
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgbG9uZyBsb25nIGludCBsbDsKI2RlZmluZSBmYXN0IGlvczo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKI2RlZmluZSBmKGksayxuKSBmb3IobGwgaT1rO2k8bjtpKyspCiNkZWZpbmUgZnIoaSxuLGspIGZvcihsbCBpPW4tMTtpPj1rO2ktLSkKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBteGUodikgKm1heF9lbGVtZW50KHYuYmVnaW4oKSx2LmVuZCgpKQojZGVmaW5lIG1uZSh2KSAqbWluX2VsZW1lbnQodi5iZWdpbigpLHYuZW5kKCkpCiNkZWZpbmUgYnMgYmluYXJ5X3NlYXJjaAojZGVmaW5lIGxiIGxvd2VyX2JvdW5kCiNkZWZpbmUgdWIgdXBwZXJfYm91bmQKI2RlZmluZSB2ZSB2ZWN0b3IKaW50IG1haW4oKSB7CiAgICBmYXN0CiAgICBsbCB0PTE7IC8vY2luPj50OwogICAgd2hpbGUodC0tKXsKICAgICAgICBsbCBuLG0sazsgY2luPj5uPj5tPj5rOwogICAgICAgIGxsIGFbbisxXSx4LHk7IGYoaSwxLG4rMSkge2Npbj4+YVtpXTt9CiAgICAgICAgdmU8cGFpcjxsbCxsbD4+dltuKzFdOyAKICAgICAgICBmKGksMCxtKSB7Y2luPj54Pj55OyB2W3hdLnBiKHthW3ldLHl9KTsgdlt5XS5wYih7YVt4XSx4fSk7fQogICAgICAgIGYoaSwxLG4rMSkge3NvcnQodltpXS5iZWdpbigpLHZbaV0uZW5kKCkpO30KICAgICAgICBmKGksMSxuKzEpIHsKICAgICAgICAgICAgaWYodltpXS5zaXplKCk8aykge2NvdXQ8PCItMSI8PGVuZGw7fQogICAgICAgICAgICBlbHNlIHtjb3V0PDx2W2ldW3ZbaV0uc2l6ZSgpLWtdLnNlY29uZDw8ZW5kbDt9CiAgICAgICAgfQogICAgfQpyZXR1cm4gMDsKfQo=