#include #include //#include #include using namespace std; int N,M; int P[20000]; int U[2<<17],V[2<<17],deg[20000]; vectorG[20000]; //mapEX[20000]; unordered_mapEX[20000]; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); 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]][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=false; { auto it=EX[X].find(P[Y]); if(it!=EX[X].end()&&it->second)fn=true; } if(!fn) { for(int v:G[X])if(P[v]==P[Y]) { fn=true; break; } } if(!fn)cout<<"No\n"; else { cout<<"Yes\n"; for(int v:G[X]) { //if(!--EX[v][P[X]])EX[v].erase(EX[v].find(P[X])); --EX[v][P[X]]; ++EX[v][P[Y]]; } P[X]=P[Y]; } } }