#include #include #include #include using namespace std; int n,m; pair queries[100011]; int qL=0; vector< pair< pair,int > > wanted[100011]; int answers[100011]; int father[100011]; int Find(int ver) { if (father[ver]==0) return ver; else { father[ver]=Find(father[ver]); return father[ver]; } } int main() { int i,j; int cm; int x,y; int counter=0; int L=0; int r1,r2; scanf("%d %d",&n,&m); for (i=1;i<=m;i++) { scanf("%d",&cm); if (cm==1) { scanf("%d %d",&x,&y); qL++; queries[qL]=make_pair(x,y); counter++; } else if (cm==2) { scanf("%d",&x); counter-=x; } else { scanf("%d %d",&x,&y); L++; wanted[counter].push_back( make_pair( make_pair(x,y),L ) ); } } for (i=0;i