#pragma region header #include // #include // using namespace boost; // #include // using namespace boost::multiprecision; #define int long long #define double long double #ifdef LOCAL #include #define debug(...) debug_print::multi_print(#__VA_ARGS__, __VA_ARGS__) #else #define debug(...) (static_cast(0)) #endif #define REP(i,n) for (int i = 0; (i) < (int)(n); ++(i)) #define REP3(i,m,n) for (int i = (m); (i) < (int)(n); ++(i)) #define ALL(x) begin(x), end(x) using namespace std; using Int = long long; using VI = vector; using VVI = vector>; using P = pair; using TR = tuple; template using V = vector; template bool chmin(T& a, const T& b) {return a>b ? a=b, true : false;} template bool chmax(T& a, const T& b) {return a void in(T& x){cin >> x;} template void in(vector& X){for(auto& x:X) cin>>x;} template void in(vector>& X){for(auto& x:X) in(x);} template void in(H&& head, T&&... tail){in(head); in(tail...);} struct input {templateoperator T(){T t; cin >> t; return t;}}; bool _fst=false; void _spc(){if(_fst) _fst=false;else cout<<" ";} template void _out(T x){_spc(); cout< void _out(vector>& X){ for(auto x:X){for(auto y:x) _out(y);cout<<"\n";_fst=true;}} template void _out(vector& X){for(auto x:X) _out(x);} void __out() {cout<<"\n";} template void __out(H&& hd, T&&... tl){_out(hd); __out(move(tl)...);} void out() {cout<<"\n";} template void out(H&& head, T&&... tail){_fst=true; _out(head); __out(move(tail)...);} const long long INF = (long long)1.1e18; const int inf=(int)2e9; struct aaa{aaa(){cin.tie(0);ios::sync_with_stdio(0);cout<