#include #include #include #include const int N=10010; using namespace std; int n,m; int parent[N]; int visited[N]; struct Edge { int u,v,w; bool operator < (const Edge &p) const { return p.w=0;s=parent[s]); while(s!=x){ int temp=parent[x]; parent[x]=s; x=temp; } return s; } void Union(int R1,int R2){ int r1=Find(R1); int r2=Find(R2); int temp=parent[r1]+parent[r2]; if(parent[r1]>parent[r2]){ parent[r1]=r2; parent[r2]=temp; }else { parent[r2]=r1; parent[r1]=temp; } } int main(){ while(scanf("%d%d",&n,&m)!=EOF){ if(n==0&&m==0)break; memset(visited,0,sizeof(visited)); int u,v,ans=0; for(int i=0;i