namespace FAST_IO {
const int LEN = 1 << 18;
char BUF[LEN], PUF[LEN];
int Pin = LEN, Pout;
inline void flushin() {
memcpy(BUF, BUF + Pin, LEN - Pin), fread(BUF + LEN - Pin, 1, Pin, stdin), Pin = 0;
}
inline void flushout() {
fwrite(PUF, 1, Pout, stdout), Pout = 0;
}
inline char Getc() {
return (Pin == LEN ? (fread(BUF, 1, LEN, stdin), Pin = 0) : 0), BUF[Pin++];
}
inline void Putc(char x) {
if (Pout == LEN)
flushout(), Pout = 0;
PUF[Pout++] = x;
}
inline void Put(char x) {
PUF[Pout++] = x;
}
inline int read() {
(Pin + 32 >= LEN) ? flushin() : void();
int res = 0;
char f = 1, ch = ' ';
for (; ch < '0' || ch > '9'; ch = BUF[Pin++])
if (ch == '-')
f = -1;
for (; ch >= '0' && ch <= '9'; ch = BUF[Pin++])
res = (res << 3) + (res << 1) + ch - 48;
return res * f;
}
inline void wt(int a) {
if (a > 9)
wt(a / 10);
Put(a % 10 + '0');
return;
}
inline void write(int a, char b = '\n') {
static int stk[20], top;
(Pout + 32 >= LEN) ? flushout() : void();
if (a < 0)
Put('-'), a = -a;
else if (a == 0)
Put('0');
for (top = 0; a; a /= 10)
stk[++top] = a % 10;
for (; top; --top)
Put(stk[top] ^ 48);
Put(b);
}
}
打表我都不会打
我也不会