#include using namespace std; #define Mod(x) (x>=P)&&(x-=P) #define rep(i,a,b) for(int i=a,i##end=b;i<=i##end;++i) #define drep(i,a,b) for(int i=a,i##end=b;i>=i##end;--i) #define erep(i,a,b) for(int i=hd[a];i;i=nxt[i]) typedef long long ll; void Max(int &x,int y){xy&&(x=y);} bool vio; char IO; int rd(int res=0){ bool f=0; while(IO=getchar(),IO<48||IO>57) f|=IO=='-'; do res=(res<<1)+(res<<3)+(IO^48); while(IO=getchar(),isdigit(IO)); return f?-res:res; } const int M=5e6+10; int sz[M],F[M]; int getfa(int x){ return F[x]==x?x:F[x]=getfa(F[x]); } void Merge(int a,int b){ a=getfa(a),b=getfa(b); if(a==b)return ; F[a]=b,sz[b]+=sz[a]; } bool let; int main(){ //cerr<<(&vio-&let)/1024.0/1024<