#include <iostream>
#include <list>
using namespace std;
#define gc getchar_unlocked
#define pc putchar_unlocked
inline int scan(){register int n=0,c=gc();while(c<'0'||c>'9')c=gc();while(c<='9'&&c>='0')n=(n<<1)+(n<<3)+c-'0',c=gc();return n;}
bool findPath(int X, int Y, bool V[],int T[],int N){
if(T[X]==Y) {
//cout<<X<<Y<<"\n";
return true;
}
else if(V[X]==0 && T[X]!=Y && T[X]<N ){
//cout << "temp="<<X<<"-"<<T[X]<<"\n";
V[X]=1;
return findPath(V[X],Y,V,T,N);
}
else return false;
}
int findPathUtil(int X, int Y,int A[], int B[],int N){
bool VA[200]={0};
bool VB[200]={0};
bool ans = false;
//char a='a',b='b';
ans = ans || findPath(X,Y,VA,A,N) || findPath(X,Y,VB,B,N);
return ans;
}
int main()
{
int t,N,M,Q,nn,mm,X,Y;
t=scan();
int A[200],B[200];
while(t--){
N=scan();
M=scan();
//int A[N],B[N];
mm=M;
while(M--){
int t1=scan();
int t2=scan();
A[t1]=t2;
B[t2]=t1;
//added all entries in A,B array
}
}
/*for(int i=0;i<mm;i++){
cout << i << "=" <<A[i]<<"\n";
}*/
Q=scan();
while(Q--){
X=scan();
Y=scan();
if(X<N && Y<N){
if(findPathUtil(X,Y,A,B,N)==true)cout<<"YES\n";
else cout <<"NO\n";
}
else cout << "NO\n";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bGlzdD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBnYyBnZXRjaGFyX3VubG9ja2VkCiNkZWZpbmUgcGMgcHV0Y2hhcl91bmxvY2tlZAppbmxpbmUgaW50IHNjYW4oKXtyZWdpc3RlciBpbnQgbj0wLGM9Z2MoKTt3aGlsZShjPCcwJ3x8Yz4nOScpYz1nYygpO3doaWxlKGM8PSc5JyYmYz49JzAnKW49KG48PDEpKyhuPDwzKStjLScwJyxjPWdjKCk7cmV0dXJuIG47fSAKCmJvb2wgZmluZFBhdGgoaW50IFgsIGludCBZLCBib29sIFZbXSxpbnQgVFtdLGludCBOKXsKCWlmKFRbWF09PVkpIHsKCQkvL2NvdXQ8PFg8PFk8PCJcbiI7CgkJcmV0dXJuIHRydWU7CgkJfQoJZWxzZSBpZihWW1hdPT0wICYmIFRbWF0hPVkgJiYgVFtYXTxOICl7CgkJLy9jb3V0IDw8ICJ0ZW1wPSI8PFg8PCItIjw8VFtYXTw8IlxuIjsKCQlWW1hdPTE7CgkJcmV0dXJuIGZpbmRQYXRoKFZbWF0sWSxWLFQsTik7Cgl9CgllbHNlIHJldHVybiBmYWxzZTsKfQppbnQgZmluZFBhdGhVdGlsKGludCBYLCBpbnQgWSxpbnQgQVtdLCBpbnQgQltdLGludCBOKXsKCWJvb2wgVkFbMjAwXT17MH07Cglib29sIFZCWzIwMF09ezB9OwoJYm9vbCBhbnMgPSBmYWxzZTsKCS8vY2hhciBhPSdhJyxiPSdiJzsKCWFucyA9IGFucyB8fCBmaW5kUGF0aChYLFksVkEsQSxOKSB8fCBmaW5kUGF0aChYLFksVkIsQixOKTsKCXJldHVybiBhbnM7Cn0KCmludCBtYWluKCkKewogICAgaW50IHQsTixNLFEsbm4sbW0sWCxZOwogICAgdD1zY2FuKCk7CiAgICBpbnQgQVsyMDBdLEJbMjAwXTsKICAgIHdoaWxlKHQtLSl7CiAgICAJTj1zY2FuKCk7CiAgICAJTT1zY2FuKCk7CiAgICAJLy9pbnQgQVtOXSxCW05dOwogICAgCW1tPU07CiAgICAJd2hpbGUoTS0tKXsKICAgIAkJaW50IHQxPXNjYW4oKTsKICAgIAkJaW50IHQyPXNjYW4oKTsKICAgIAkJCUFbdDFdPXQyOwogICAgCQkJQlt0Ml09dDE7CiAgICAJCQkvL2FkZGVkIGFsbCBlbnRyaWVzIGluIEEsQiBhcnJheQogICAgCX0KICAgIH0KICAgIC8qZm9yKGludCBpPTA7aTxtbTtpKyspewogICAgCWNvdXQgPDwgaSA8PCAiPSIgPDxBW2ldPDwiXG4iOwogICAgfSovCiAgICAKICAgIFE9c2NhbigpOwogICAgd2hpbGUoUS0tKXsKICAgIFg9c2NhbigpOwogICAgWT1zY2FuKCk7CiAgICBpZihYPE4gJiYgWTxOKXsKICAgICAgaWYoZmluZFBhdGhVdGlsKFgsWSxBLEIsTik9PXRydWUpY291dDw8IllFU1xuIjsKICAgICAgZWxzZSBjb3V0IDw8Ik5PXG4iOwogICAgfQogICAgZWxzZSBjb3V0IDw8ICJOT1xuIjsKICAgIH0KICAgIHJldHVybiAwOwp9