text: h> #pragma GCC optimize(2) #pragma GCC optimize("Ofast") using namespace std; namespace Base { inline char gc(void) { static char buf[100000], *p1 = buf, *p2 = buf; return p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 100000, stdin), p1 == p2) ?EOF : *p1++; } template <class T> inline void read(T &x) { T flag = (T)1; x = 0; static char ch = gc(); for (; ch > '9' || ch < '0'; ch = gc()) flag = ch == '-' ?-1 : 1; for (; ch >= '0' && ch <= '9'; ch = gc()) x = (x << 1) + (x << 3) + (ch & 15); x *= flag; return; } inline void readstr(string &x) { x = ""; static char ch; while (isspace(ch = gc())) ; while (x += ch, !isspace(ch = gc())) ; } inline void readstr(char *s) { do *s = gc(); while ((*s == ' ') || (*s == '\n') || (*s == '\r')); do *(++s) = gc(); while ((~*s) && (*s != ' ') && (*s != '\n') && (*s != '\r')); *s = 0; return; } inline void printstr(string x, int num = 0, char ch = '\n') { for (int i = num; i < x.size(); ++i) putchar(x[i]); putchar(ch); } inline void readch(char &x) { while (isspace(x = gc())) ; } char pf[100000], *o1 = pf, *o2 = pf + 100000; template <class T> inline void println(T x, char c = '\n') { if (x < 0) (o1 == o2 ?fwrite(pf, 1, 100000, stdout), *(o1 = pf)++ = 45 : *o1++ = 45), x = -x; static char s[15], *b; b = s; if (!x) *b++ = 48; for (; x; *b++ = x % 10 + 48, x /= 10) ; for (; b-- != s; (o1 == o2 ?fwrite(pf, 1, 100000, stdout), *(o1 = pf)++ = *b : *o1++ = *b)) ; (o1 == o2 ?