#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define loop(x,y,z) for(int x=y;x<=z;x++) #define pi acos(-1.0) #define sz(a) (int)(a).size() #define NMAX 2147483647 #define LMAX 9223372036854775807LL #define pb push_back #define mp make_pair #define ll long long #define pf printf #define mem(x,y) memset(x,y,sizeof(x)) #define rep(x,y) for(int x=1;x<=y;x++) #define pii pair #define pll pair #define gi(k) scanf("%d",&k) #define gl(k) scanf("%lld",&k) #define PI acos(-1.0) #define eps 1e-8 #define fi first #define sc second #define inf 1e13 #define endl "\n" #define FO(i,n) for(int i = 0; i < n; i++) #define debug(x) cout << #x << ": " << x << endl const int INF = (int) 1e9; const long long INF64 = (long long) 1e18; #pragma comment (linker,"/STACK:16777216") #pragma warning(disable:4786) int Set(int N , int pos){return N = N | (1 << pos); } int Reset(int N , int pos){return N = N & ~(1 << pos); } bool check(int N, int pos){return (bool) (N & (1<