#include#define ri register intusing namespace std;inline int read(){ int ans=0; char ch=getchar(); while(!isdigit(ch))ch=getchar(); while(isdigit(ch))ans=(ans<<3)+(ans<<1)+(ch^48),ch=getchar(); return ans;}const int N=1e6+5,M=1e4+5;int vis[M],n,pre[N],ans=0;vector e[M];inline bool dfs(int p){ if(vis[p])return 0; vis[p]=1; for(ri i=0;i