#pragma GCC optimize("Ofast") #pragma GCC target("avx2") char*mmap(); #define RD(v) int v=0;{int _c;while(_c=*rp++-48,_c>=0)v=v*10+_c;} long wbuf[10000]; #define WT(v) {long _z=v,_d=0;while(_d=_d<<8|0x30|_z%10,_z/=10);*wp++=_d|0x0a20202020202020l;} #define UFSIZE 10001 int ufbuf[UFSIZE]; void uf_init(){ for(int i=0;i=0) t=b; while(b=ufbuf[a],b>=0) ufbuf[a]=t,a=b; return t; } void uf_unite(int a,int b){ a=uf_root(a); b=uf_root(b); if(a!=b){ if(ufbuf[a]