char cc;
namespace fastIO {
const int size=1<<15|1;
char buf[size],*l,*r;
void getChar(char &c) {
if(l==r) r=(l=buf)+fread(buf,1,size,stdin);
c= l==r? (char)EOF:*l++;
}
template<typename T> void read(T &aa) {
aa=0;getChar(cc);
while(cc<'0'||cc>'9') getChar(cc);
while(cc>='0'&&cc<='9') aa=aa*10+cc-'0',getChar(cc);
}
}