inline char readchar()
{
static const size_t bufsize = 65536;
static char buf[bufsize];
static char *p = buf, *end = buf;
if (p == end) end = buf + fread_unlocked(buf, 1, bufsize, stdin), p = buf;
return *p++;
}
template <class T> void input(T& a)
{
static char p;
while ((p = readchar()) < '0') ;
a = p ^ '0';
while ((p = readchar()) >= '0') a *= 10, a += p ^ '0';
}