#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define rep(i,n) for(int i=0;i=0;i--) #define DREP(i,n) for(int i=n;i>0;i--) #define Rep(i,m,n) for(int i=m;i vi; typedef vector> vvi; typedef pair pdd; typedef pair pii; const double pi = acos(-1.0); double rad(double t){return t*pi/180.0;} double deg(double d){return d*180.0/pi;} templateT GCD(T x,T y){return y?GCD(y,x%y):x;} templateT LCM(T x,T y){return x/GCD(x,y)*y;} templateostream& operator<<(ostream& os,const set& s){os<<"{";for(auto itr=s.begin();s.end() != itr;++itr){if(itr!=s.begin())os<<',';os<<*itr;}os<<"}";return os;} templateostream& operator<<(ostream& os,const pair& p){os<<'('<> n; cout << solve(n); return 0; }