#include using i64=int64_t; struct data{i64 M;i64 R;i64 nx;i64 nr;} stack[10000]; int szStack; i64 Xmod(i64 m){ i64 x=0,r=1; for(int i=0;i>Q;while(Q--){ i64 q,x,y; std::cin>>q>>x; if(q==1){ std::cin>>y; i64 a=Xmod(x),b=Rmod(x),t,u,g; if(a==-1){stack[szStack++]={};continue;} g=extgcd(x,b,t,u); if((y-a)%g){stack[szStack++]={};continue;} if(u<0)u+=x/g; u*=(y-a+x)/g;u%=x/g; stack[szStack++]={x,y,u,x/g}; } if(q==2){szStack-=x;} if(q==3){std::cout<