#include #include #include #include using namespace std; #define N 10005 #define M 20005 struct node{ int from,to,next; }edge[2*M],edge1[2*M]; int head[N],tol,n,m,cnt,dfn[N],low[N],visit[N],Belong[N],tol1,head1[N],val[N],val1[N],SUM,Min,count; stackS; void add(int a,int b) { edge[tol].from=a;edge[tol].to=b;edge[tol].next=head[a];head[a]=tol++; } void add1(int a,int b) { edge1[tol1].from=a;edge1[tol1].to=b;edge1[tol1].next=head1[a];head1[a]=tol1++; } int min(int a,int b) { return a