常用库函数重载
using i64 = long long;using i128 = __int128;
i64 ceilDiv(i64 n, i64 m) { if (n >= 0) { return (n + m - 1) / m; } else { return n / m; }}
i64 floorDiv(i64 n, i64 m) { if (n >= 0) { return n / m; } else { return (n - m + 1) / m; }}
template<class T>void chmax(T &a, T b) { if (a < b) { a = b; }}
i128 gcd(i128 a, i128 b) { return b ? gcd(b, a % b) : a;}