using f80 = longdouble; using u128 = unsigned __int128; using i128 = __int128; using u64 = unsignedlonglong; using i64 = longlong; using u32 = unsigned;
intread(){ int sum = 0, fl = 1; int ch = getchar(); for (; !isdigit(ch); ch = getchar()) if (ch == '-') fl = -1; for (; isdigit(ch); ch = getchar()) sum = sum * 10 + ch - '0'; return sum * fl; }
voidwrite(int x){ if (x < 0) putchar('-'), x = -x; if (x > 9) write(x / 10); putchar((int) (x % 10) + '0'); }