int rt(int m) { REP(i,2,m) { int x=m-1, ok=1, mx = sqrt(m); REP(k,2,mx) if (x%k==0) { if (qpow(i,(m-1)/k,m)==1) {ok=0;break;} while (x%k==0) x/=k; } if (ok&&(x==1||qpow(i,(m-1)/x,m)>1)) return i; } throw; }