lll Read()
{
bool flag=0;
char ch=getchar();
lll ans=0;
while(!isdigit(ch) && ~ch)
{
flag|=(ch=='-');
ch=getchar();
}
while(isdigit(ch) && ~ch)
{
ans=(ans<<1)+(ans<<3)+(ch^48);
ch=getchar();
}
return flag ? -ans : ans;
}
int _c[100];
void Write(lll x)
{
int i=0;
bool flag=0;
if(x<0) {x=-x;putchar('-');}
if(x==0) putchar('0');
while(x) {_c[++i]=x%10;x/=10;}
while(i) {putchar(_c[i--]^48);}
}
//double快读
inline void Readouble(double &ans)
{
ans=0;
double y=1.0;
bool flag=0;
char ch=getchar();
while(!isdigit(ch) && ~ch)
{
flag|=(ch=='-');
ch=getchar();
}
while(isdigit(ch) && ~ch)
{
ans=ans*10+(ch^48);
ch=getchar();
}
ch=getchar();
while(isdigit(ch) && ~ch)
{
y/=10;
ans+=y*(ch^48);
ch=getchar();
}
if(flag) ans=-ans;
}