#include // {{{ #include #include #include #include #include #include #define GET_MACRO(a, b, c, d, NAME, ...) NAME #define REP(...) GET_MACRO(__VA_ARGS__, REP4, REP3, REP2)(__VA_ARGS__) #define REP2(i, a) REP3(i, 0, a) #define REP3(i, a, b) REP4(i, a, b, 1) #define REP4(i, a, b, s) for (int i = (a); i < (int)(b); i += (s)) #define REPR(...) GET_MACRO(__VA_ARGS__, REPR4, REPR3, REPR2)(__VA_ARGS__) #define REPR2(i, a) REPR3(i, 0, a) #define REPR3(i, a, b) REPR4(i, a, b, 1) #define REPR4(i, a, b, s) for (int i = (b)-1; i >= (int)(a); i -= (s)) #define ALL(c) (c).begin(), (c).end() using Int = long long; // clang-format off templateinline bool chmax(T&x,U a){return xinline bool chmin(T&x,U a){return a