#pragma GCC optimize(3)//O3
#pragma GCC optimize(2)//O2
#define max(a,b) a>b?a:b
#define min(a,b) a<b?a:b
inline int read()
{
int X=0,w=0; char ch=0;
while(!isdigit(ch)) {w|=ch=='-';ch=getchar();}
while(isdigit(ch)) X=(X<<3)+(X<<1)+(ch^48),ch=getchar();
return w?-X:X;
}