//Coder: Balajiganapathi #ifndef ONLINE_JUDGE # define DEBUG # define TRACE #else //# define NDEBUG #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; typedef unsigned long long ull; typedef vector vi; typedef pair pi; typedef vector vs; typedef vector vpi; // Basic macros #define fi first #define se second #define all(x) (x).begin(), (x).end() #define ini(a, v) memset(a, v, sizeof(a)) #define re(i,s,n) for(int i=s;i<(n);++i) #define rep(i,s,n) for(int i=s;i<=(n);++i) #define fo(i,n) re(i,0,n) #define rev(i,n,s) for(int i=(n)-1;i>=s;--i) #define repv(i,n,s) for(int i=(n);i>=s;--i) #define fov(i,n) rev(i,n,0) #define pu push_back #define mp make_pair #define si(x) (int)(x.size()) #ifdef TRACE #define trace(x) cerr<