#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;} #define RDL(v) long v=0;{int _c;while(_c=*rp++-48,_c>=0)v=v*10+_c;} #define UFSIZE 100001 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]