#pragma GCC optimize( "unroll-loops" ) { ll@B,@C,b=B,P[4],e=1,n=0,u[B],d,a=0,q,r,c,s,t; rep(i,2,B){if(i*i>b)break;if(b%i<1){b/=i;P[n++]=i;e*=i-1;while(b%i<1)b/=i,e*=i;}} if(b>1)P[n++]=b,e*=b-1; modint x;x.setmod(B); rep(i,B)u[i]=(x=i).pw(e-1); d=B/C;b=d*B;ll F[b]={}; rep(i,b){ if(F[i])continue; q=i/d;r=i%d;c=1; rep[P](p,n)c*=q%p; if(c<1)continue; a++; if(a>100)wt("100+"),exit(0); rep(j,b){ s=j/d;t=j%d;c=1; rep[P](p,n)c*=s%p; F[u[s]*q*s%B*d+u[s]*(q*t+r-t)%d]|=c; } } wt(a); }