#include #include #include using namespace std; int N,M; int P[20000]; int U[2<<17],V[2<<17],deg[20000]; vectorG[20000]; unordered_multisetEX[20000]; int main() { cin>>N>>M; for(int i=0;i>P[i]; P[i]--; } for(int i=0;i>U[i]>>V[i]; U[i]--,V[i]--; if(U[i]==V[i])continue; deg[U[i]]++; deg[V[i]]++; } for(int i=0;imake_pair(deg[V[i]],V[i]))swap(U[i],V[i]); G[U[i]].push_back(V[i]); EX[V[i]].insert(P[U[i]]); } int Q;cin>>Q; for(;Q--;) { int X,Y;cin>>X>>Y;X--,Y--; if(P[X]==P[Y]) { cout<<"No\n"; continue; } bool fn=EX[X].find(P[Y])!=EX[X].end(); for(int v:G[X])if(P[v]==P[Y])fn=true; if(!fn)cout<<"No\n"; else { cout<<"Yes\n"; for(int v:G[X]) { EX[v].erase(EX[v].find(P[X])); EX[v].insert(P[Y]); } P[X]=P[Y]; } } }