1 struct FastIO {
2 static const int S = 1310720;
3 int wpos;
4 char wbuf[S];
5 FastIO() : wpos(0) { }
6 inline int xchar() {
7 static char buf[S];
8 static int len = 0, pos = 0;
9 if (pos == len) pos = 0, len = fread(buf, 1, S, stdin);
10 if (pos == len) return -1;
11 return buf[pos++];
12 }
13 inline int xint() {
14 int c = xchar(), x = 0, s = 1;
15 while (c <= 32) c = xchar();
16 if (c == '-') s = -1, c = xchar();
17 for (; '0' <= c && c <= '9'; c = xchar()) x = x * 10 + c - '0';
18 return x * s;
19 }
20 ~FastIO() {
21 if (wpos) fwrite(wbuf, 1, wpos, stdout), wpos = 0;
22 }
23 } io;