#include <bits/stdc++.h>
#define pb push_back
#define sz(u) (int)(u.size())
using namespace std;
const int MAXN=2e5;
int n,q;
vector<vector<int>> g(MAXN);
vector<int> diam, par(MAXN), ans(MAXN,-1), downMost(MAXN), preDiam(MAXN), sufDiam(MAXN);
vector<bool> blocked(MAXN);
int furthestNode=-1, maxDist=-1, diamL=-1;
void furthest(int u, int pr, int d=1)
{
par[u]=pr;
if(d>maxDist)
{
maxDist=d;
furthestNode=u;
}
for(int v:g[u])
{
if(v==pr || blocked[v]) continue;
furthest(v,u,d+1);
}
}
int findDiam(int u)
{
int A=-1,B=-1;
maxDist=-1, furthestNode=-1;
furthest(u,-1);
A=furthestNode;
if(diamL!=-1) downMost[u]=maxDist;
maxDist=-1, furthestNode=-1;
furthest(A,-1);
B=furthestNode;
return B;
}
int main()
{
ios::sync_with_stdio(0); cin.tie(0);
cin>>n>>q;
for(int i=0;i<n-1;i++)
{
int u,v; cin>>u>>v;
u--,v--;
g[u].pb(v);
g[v].pb(u);
}
int curNode = findDiam(0);
while(curNode!=-1)
{
diam.pb(curNode);
blocked[curNode]=1;
curNode=par[curNode];
}
diamL=maxDist;
ans[diamL]=0;
ans[0]=diamL;
for(int u:diam)
{
for(int v:g[u])
{
if(blocked[v]) continue;
findDiam(v);
ans[maxDist]=max(diamL,ans[maxDist]);
ans[diamL]=max(maxDist,ans[diamL]);
downMost[u]=max(downMost[u],downMost[v]);
}
}
preDiam[0]=1, sufDiam[diamL-1]=1;
for(int i=1;i<diamL;i++) preDiam[i]=max(preDiam[i-1],i+1+downMost[diam[i]]);
for(int i=1;i<diamL;i++) sufDiam[diamL-1-i]=max(sufDiam[diamL-i],i+1+downMost[diam[diamL-1-i]]);
for(int i=0;i<diamL-1;i++) ans[preDiam[i]]=max(ans[preDiam[i]],sufDiam[i+1]),ans[sufDiam[diamL-1-i]]=max(ans[sufDiam[diamL-1-i]],preDiam[diamL-2-i]);
for(int i=diamL;i>=0;i--) ans[i]=max(ans[i],ans[i+1]);
int l1,l2;
while(q--)
{
cin>>l1>>l2;
if(ans[l1]>=l2) cout<<"YES\n";
else cout<<"NO\n";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CgojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIHN6KHUpIChpbnQpKHUuc2l6ZSgpKQoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGludCBNQVhOPTJlNTsKCmludCBuLHE7CnZlY3Rvcjx2ZWN0b3I8aW50Pj4gZyhNQVhOKTsKdmVjdG9yPGludD4gZGlhbSwgcGFyKE1BWE4pLCBhbnMoTUFYTiwtMSksIGRvd25Nb3N0KE1BWE4pLCBwcmVEaWFtKE1BWE4pLCBzdWZEaWFtKE1BWE4pOwp2ZWN0b3I8Ym9vbD4gYmxvY2tlZChNQVhOKTsKaW50IGZ1cnRoZXN0Tm9kZT0tMSwgbWF4RGlzdD0tMSwgZGlhbUw9LTE7Cgp2b2lkIGZ1cnRoZXN0KGludCB1LCBpbnQgcHIsIGludCBkPTEpCnsKICAgIHBhclt1XT1wcjsKICAgIGlmKGQ+bWF4RGlzdCkKICAgIHsKICAgICAgICBtYXhEaXN0PWQ7CiAgICAgICAgZnVydGhlc3ROb2RlPXU7CiAgICB9CiAgICBmb3IoaW50IHY6Z1t1XSkKICAgIHsKICAgICAgICBpZih2PT1wciB8fCBibG9ja2VkW3ZdKSBjb250aW51ZTsKICAgICAgICBmdXJ0aGVzdCh2LHUsZCsxKTsKICAgIH0KfQoKaW50IGZpbmREaWFtKGludCB1KQp7CiAgICBpbnQgQT0tMSxCPS0xOwogICAgbWF4RGlzdD0tMSwgZnVydGhlc3ROb2RlPS0xOwogICAgZnVydGhlc3QodSwtMSk7CiAgICBBPWZ1cnRoZXN0Tm9kZTsKICAgIGlmKGRpYW1MIT0tMSkgZG93bk1vc3RbdV09bWF4RGlzdDsKICAgIG1heERpc3Q9LTEsIGZ1cnRoZXN0Tm9kZT0tMTsKICAgIGZ1cnRoZXN0KEEsLTEpOwogICAgQj1mdXJ0aGVzdE5vZGU7CiAgICByZXR1cm4gQjsKfQoKaW50IG1haW4oKQp7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsKICAgIGNpbj4+bj4+cTsKICAgIGZvcihpbnQgaT0wO2k8bi0xO2krKykKICAgIHsKICAgICAgICBpbnQgdSx2OyBjaW4+PnU+PnY7CiAgICAgICAgdS0tLHYtLTsKICAgICAgICBnW3VdLnBiKHYpOwogICAgICAgIGdbdl0ucGIodSk7CiAgICB9CiAgICBpbnQgY3VyTm9kZSA9IGZpbmREaWFtKDApOwogICAgd2hpbGUoY3VyTm9kZSE9LTEpCiAgICB7CiAgICAgICAgZGlhbS5wYihjdXJOb2RlKTsKICAgICAgICBibG9ja2VkW2N1ck5vZGVdPTE7CiAgICAgICAgY3VyTm9kZT1wYXJbY3VyTm9kZV07CiAgICB9CiAgICBkaWFtTD1tYXhEaXN0OwogICAgYW5zW2RpYW1MXT0wOwogICAgYW5zWzBdPWRpYW1MOwogICAgZm9yKGludCB1OmRpYW0pCiAgICB7CiAgICAgICAgZm9yKGludCB2OmdbdV0pCiAgICAgICAgewogICAgICAgICAgICBpZihibG9ja2VkW3ZdKSBjb250aW51ZTsKICAgICAgICAgICAgZmluZERpYW0odik7CiAgICAgICAgICAgIGFuc1ttYXhEaXN0XT1tYXgoZGlhbUwsYW5zW21heERpc3RdKTsKICAgICAgICAgICAgYW5zW2RpYW1MXT1tYXgobWF4RGlzdCxhbnNbZGlhbUxdKTsKICAgICAgICAgICAgZG93bk1vc3RbdV09bWF4KGRvd25Nb3N0W3VdLGRvd25Nb3N0W3ZdKTsKICAgICAgICB9CiAgICB9CiAgICBwcmVEaWFtWzBdPTEsIHN1ZkRpYW1bZGlhbUwtMV09MTsKICAgIGZvcihpbnQgaT0xO2k8ZGlhbUw7aSsrKSBwcmVEaWFtW2ldPW1heChwcmVEaWFtW2ktMV0saSsxK2Rvd25Nb3N0W2RpYW1baV1dKTsKICAgIGZvcihpbnQgaT0xO2k8ZGlhbUw7aSsrKSBzdWZEaWFtW2RpYW1MLTEtaV09bWF4KHN1ZkRpYW1bZGlhbUwtaV0saSsxK2Rvd25Nb3N0W2RpYW1bZGlhbUwtMS1pXV0pOwogICAgZm9yKGludCBpPTA7aTxkaWFtTC0xO2krKykgYW5zW3ByZURpYW1baV1dPW1heChhbnNbcHJlRGlhbVtpXV0sc3VmRGlhbVtpKzFdKSxhbnNbc3VmRGlhbVtkaWFtTC0xLWldXT1tYXgoYW5zW3N1ZkRpYW1bZGlhbUwtMS1pXV0scHJlRGlhbVtkaWFtTC0yLWldKTsKICAgIGZvcihpbnQgaT1kaWFtTDtpPj0wO2ktLSkgYW5zW2ldPW1heChhbnNbaV0sYW5zW2krMV0pOwogICAgaW50IGwxLGwyOwogICAgd2hpbGUocS0tKQogICAgewogICAgICAgIGNpbj4+bDE+PmwyOwogICAgICAgIGlmKGFuc1tsMV0+PWwyKSBjb3V0PDwiWUVTXG4iOwogICAgICAgIGVsc2UgY291dDw8Ik5PXG4iOwogICAgfQogICAgcmV0dXJuIDA7Cn0=