#include<cstdio> #include<cstring> #include<algorithm> #define N 100010 using namespace std; struct Node{ int id,fa; }; int n,m; Node node[N]; int id[N],fa[N]; int find(int i) { if (i!=fa[i]) return fa[i]=find(fa[i]); return i; } void Union(int i,int j) { fa[find(i)]=find(j); } bool cmp(Node a,Node b) { return a.fa<b.fa; } int main() { int i,a,b,cnt,cyc; bool flag; while (scanf("%d%d",&n,&m)&&(n+m)){ memset(id,0,sizeof(id)); for (i=0;i<n;i++) fa[i]=i; for (i=0;i<m;i++){ scanf("%d%d",&a,&b); id[a]++,id[b]++; Union(a,b); } for (i=0;i<n;i++){ node[i].fa=find(i); node[i].id=id[i]; } sort(node,node+n,cmp); cnt=1; cyc=0; if (node[0].id!=2) flag=0; else flag=1; for (i=1;i<n;i++){ if (node[i].fa!=node[i-1].fa){ cnt++; if (flag) cyc++; if (node[i].id!=2) flag=0; else flag=1; } else if (flag&&node[i].id!=2) flag=0; } if (flag) cyc++; printf("%d %d/n",cnt,cyc); } return 0; }