宏定义
template<typename T> void read(T &x) { int f = 1; x = 0; char ch = getchar(); while (!isdigit(ch)) { if (ch == '-')f = -1; ch = getchar(); }while (isdigit(ch)) { x = (x << 1) + (x << 3) + (ch ^ 48); ch = getchar(); }x *= f; }
template<typename T, typename ...Args> void read(T &x, Args &...args) { read(x); read(args...); }int man();int main(){return man();}
template<typename T> void print(T x) { if (x < 0) { putchar('-'); x = -x; }if (x > 9) { print(x / 10); }putchar(char(x % 10 + 48)); }
template<typename T, typename ...Args> void print(T x, Args ...args) { print(x); putchar(' '); print(args...); }
#define int long long
#define endl '\n'
#define fastio \
ios::sync_with_stdio(0); \
cin.tie(0); \
cout.tie(0);
#define put(x) cout << x << endl
#define get(x) cin >> x
#define putv(v) \
for (auto i : v) \
cout << i << ' '; \
cout << endl
#define all(v) v.begin(), v.end()
#define repv(v) for (auto i : v)
#define rep(i, a, n) for (int i = (a); i <= (n); i++)