ll quick_mult(ll a, ll b, ll mod){
ll ans =0;while(b){if(b &1) ans =(ans + a)% mod;
a =(a + a)% mod;
b >>=1;}return ans;}
ll quick_pow(ll a, ll n, ll mod){
ll ans =1;while(n){if(n &1) ans =quick_mult(ans, a, mod);
a =quick_mult(a, a, mod);
n >>=1;}return ans;}boolmiller_rabin(ll n){if(n ==2)returntrue;if(n <2||!(n &1))returnfalse;
ll s =0, d = n -1;while(!(d &1)){
d >>=1;
s++;}srand(time(0));for(int i =1; i <=5; i++){
ll a =rand()%(n -2)+2;
ll now =quick_pow(a, d, n), pre = now;for(int j =1; j <= s; j++){
now =quick_mult(now, now, n);if(now ==1&& pre !=1&& pre != n -1)returnfalse;
pre = now;}if(now !=1)returnfalse;}returntrue;}