#include #define ll long long #define pll pair #define vpll vector #define vppll vector< pair > #define pb push_back #define eb emplace_back #define vll vector #define mp make_pair #define F first #define S second #define bc(x) __builtin_popcountll(x) #define init(x) memset(x,-1,sizeof(x)) #define clr(x) memset(x,0,sizeof(x)) #define max_pq priority_queue #define min_pq priority_queue,greater >; #define For(i,x,n) for(i=x; i0) { if(b&1) r=(r*a)%m; a=(a*a)%m; b>>=1;} return r; } /*ll seive[M]; void create() { clr(seive); for(ll i=M-1;i>=2;--i) { for(ll j=i;j