struct S{ unsigned p,q,l,n,f[32],e[32]; S(){ rd(p,q); n=Factor(q-=p,f); l=0; } void step(){ p+=l; rep[f](x,n){ while(p%x==0&&q%x==0){ p/=x; q/=x; } } l=1<<30; rep[f](x,n){ if(q%x==0){ l=0){ v.step(); } } } }