/** HODOR **/ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define CLR(o) memset(o, 0x00, sizeof o) #define CLR1(o) memset(o, -1, sizeof o) #define takei(a) scanf("%d", &a) #define takell(a) scanf("%lld", &a) #define takellu(a) scanf("%llu", &a) #define sf scanf #define pb push_back #define mp make_pair #define ppp system("pause") #define ok cout << "OKA" < T MAX(T a, T b) { return a>b?a:b;}template T MIN(T a, T b) { return a void __(T1 p) { cout << p << endl;} template void deb(T1 p) { cout << "Debugging: " << p << endl;} template void deb(T1 p, T2 q) { cout << "Debugging: " << p << "\t" << q << endl;} template void deb(T1 p, T2 q, T3 r) { cout << "Debugging: " << p << "\t " << q << "\t " << r << endl;} template void deb(T1 p, T2 q, T3 r, T4 s) { cout << "Debugging: " << p << "\t " << q << "\t " << r << "\t " << s << endl;} long long int POOW(long long b, long long p) { if(p==0) return 1; return b*POOW(b, p-1);} //int SET(int mask, int pos){return mask singlebar (1<>pos));} const int xx[] = {0, 0, 1, -1, -1, 1, -1, 1};const int yy[] = {1, -1, 0, 0, 1, 1, -1, -1}; const int kx[] = {-2, -1, 1, 2, 2, 1, -1, -2}; const int ky[] = {1, 2, 2, 1, -1, -2, -2, -1}; // KX-> Knight moves xx-> diagonal -> 8 horizontal/vertical->4 #define LT (1<<31)-1 #define MX #define MOD #define MY INT_MIN //ll FAST_EXP(ll base, ll power) /*base^power%MOD*/ {ll res=1ll;while(power){if(power&1)res=(res*base)%MOD;base=(base*base)%MOD;power>>=1;}return res%MOD;} #define SIZE 100006 bool *prime; vector p; void SEIEVE() { prime = new bool[SIZE]; CLR(prime); //p.pb(1) long long i, j, lim = sqrt(SIZE) + 1; for(i=2; i