#include<bits/stdc++.h>
using namespace std;
const int MaxN=300000;
int fa[MaxN+5],flag[MaxN+5],xy[MaxN+5][2];
int n,m,q,cnt;
int find_fa(int x) {
return fa[x]==x?x:fa[x]=find_fa(fa[x]);
}
int main() {
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++) fa[i]=i;
int x,y,z;
while(m--) {
scanf("%d%d%d",&x,&y,&z);
int fax=find_fa(x),fay=find_fa(y);
if(z==0&&fax!=fay) fa[fay]=fax,flag[fax]=flag[fax]|flag[fay];
if(z==1) xy[++cnt][0]=x,xy[cnt][1]=y;
}
for(int i=1;i<=cnt;i++) {
int fax=find_fa(xy[i][0]),fay=find_fa(xy[i][1]);
if(fax==fay) flag[fax]=1;
}
scanf("%d",&q);
int s,t;
while(q--) {
scanf("%d%d",&s,&t);
int fas=find_fa(s),fat=find_fa(t);
if((fas==fat&&flag[fas])||fas!=fat) printf("YES\n");
else printf("NO\n");
}
return 0;
}