#include using namespace std; #define ll long long const int maxn=15000; ll s[maxn+5],q[maxn+5]; ll cnt,lim; ll gcd(ll a,ll b){ return b?gcd(b,a%b):a; } ll egcd(ll a,ll b,ll &x,ll &y){ if(b==0){ x=1,y=0; return a; } ll d=egcd(b,a%b,y,x); y-=a/b*x; return d; } int main(){ ll t,op,m,r,k,i,zc,cur,rhs,lhs,x,y,g,mp,ans; scanf("%lld",&t); cnt=0,lim=0; while(t--){ scanf("%lld",&op); if(op==1){ scanf("%lld%lld",&m,&r); if(lim==cnt){ zc=0,cur=1; for(i=1;i<=cnt;i++){ zc=(zc+s[i]*cur)%m; cur=(cur*q[i])%m; } rhs=(r-zc+m)%m; lhs=cur; g=gcd(lhs,m); if(rhs%g==0){ mp=m/g; egcd(lhs/g,mp,x,y); x=(x%mp+mp)%mp; s[cnt+1]=(x*(rhs/g))%mp; q[cnt+1]=mp; lim++; } } cnt++; } else if(op==2){ scanf("%lld",&k); cnt-=k; if(lim>cnt) lim=cnt; } else{ scanf("%lld",&m); if(lim