#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define FOR(i,l,r) for(int i = l; i<= r; i++)
#define fastIO ios::sync_with_stdio(0);cout.tie(0);cin.tie(0)
#define FORD(i,r,l) for(int i = r; i >=l ; i--)
#define LINF 0x3f3f3f3f3f3f3f3f
#define pb push_back
#define fi first
#define se second
#define pii pair<int,int>
int n,q;
vector<int> a;
vector<int> g[200005];
int cnt[200005];
bool check[200005];
vector<multiset<int>> sack;
void dfs(int u,int p){
sack[u].insert(a[u]);
for(int x : g[u]){
if(x==p) continue;
dfs(x,u);
for(int y : sack[x]){
sack[u].insert(y);
}
}
}
int sol(int u,int x){
memset(check,false,sizeof check);
memset(cnt, 0, sizeof cnt);
int ans =0;
for(int cl : sack[u]){
cnt[cl]++;
if(cnt[cl] >= x && !check[cl]){
ans++;
check[cl] = true;
}
}
return ans;
}
int main(){
fastIO;
cin>>n>>q;
a.resize(n+1);
sack.resize(n+1);
FOR(i,1,n) cin>>a[i];
FOR(i,1,n-1){
int x,y;
cin>>x>>y;
g[x].pb(y);
g[y].pb(x);
}
dfs(1,-1);
while(q--){
int u,x;
cin>>u>>x;
cout<<sol(u,x)<<endl;
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgRk9SKGksbCxyKSBmb3IoaW50IGkgPSBsOyBpPD0gcjsgaSsrKQojZGVmaW5lIGZhc3RJTyBpb3M6OnN5bmNfd2l0aF9zdGRpbygwKTtjb3V0LnRpZSgwKTtjaW4udGllKDApCiNkZWZpbmUgRk9SRChpLHIsbCkgZm9yKGludCBpID0gcjsgaSA+PWwgOyBpLS0pCiNkZWZpbmUgTElORiAweDNmM2YzZjNmM2YzZjNmM2YKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIHBpaSBwYWlyPGludCxpbnQ+CmludCBuLHE7CnZlY3RvcjxpbnQ+IGE7CnZlY3RvcjxpbnQ+IGdbMjAwMDA1XTsKaW50IGNudFsyMDAwMDVdOwpib29sIGNoZWNrWzIwMDAwNV07CnZlY3RvcjxtdWx0aXNldDxpbnQ+PiBzYWNrOwp2b2lkIGRmcyhpbnQgdSxpbnQgcCl7CiAgIHNhY2tbdV0uaW5zZXJ0KGFbdV0pOwogICBmb3IoaW50IHggOiBnW3VdKXsKICAgIGlmKHg9PXApIGNvbnRpbnVlOwogICAgZGZzKHgsdSk7CiAgICAgIGZvcihpbnQgeSA6IHNhY2tbeF0pewogICAgICAgIHNhY2tbdV0uaW5zZXJ0KHkpOwogICAgICB9CiAgIH0KfQppbnQgc29sKGludCB1LGludCB4KXsKbWVtc2V0KGNoZWNrLGZhbHNlLHNpemVvZiBjaGVjayk7Cm1lbXNldChjbnQsIDAsIHNpemVvZiBjbnQpOwppbnQgYW5zID0wOwpmb3IoaW50IGNsIDogc2Fja1t1XSl7CiAgICAgIGNudFtjbF0rKzsKICAgICAgaWYoY250W2NsXSA+PSB4ICYmICFjaGVja1tjbF0pewogICAgICAgIGFucysrOwogICAgICAgIGNoZWNrW2NsXSA9IHRydWU7CiAgICAgIH0KICAgfQogICByZXR1cm4gYW5zOwp9CmludCBtYWluKCl7CmZhc3RJTzsKY2luPj5uPj5xOwphLnJlc2l6ZShuKzEpOwpzYWNrLnJlc2l6ZShuKzEpOwpGT1IoaSwxLG4pIGNpbj4+YVtpXTsKRk9SKGksMSxuLTEpewogICBpbnQgeCx5OwogICBjaW4+Png+Pnk7CiAgIGdbeF0ucGIoeSk7CiAgIGdbeV0ucGIoeCk7CiAgfQogIGRmcygxLC0xKTsKICB3aGlsZShxLS0pewogICAgaW50IHUseDsKICAgIGNpbj4+dT4+eDsKICAgIGNvdXQ8PHNvbCh1LHgpPDxlbmRsOwogIH0KfQo=