#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn=200+2;bool adj[maxn][maxn];int n, m;int degree[maxn];int col[maxn];void readin(){ int x, y; memset(adj, false, sizeof(adj)); memset(degree, 0, sizeof(degree)); for(int i=1;i<=m;++i){ scanf("%d%d", &x, &y); adj[x][y]=adj[y][x]=true; ++degree[x]; ++degree[y]; }}void solve(){ memset(col, 0, sizeof(col)); int ans=0; for(int i=1;i<=n;++i){ int pos=-1; for(int j=1;j<=n;++j){ if(!col[j] && (pos==-1 || degree[pos]<degree[j])){ pos=j; } } if(pos==-1)break; int sel=1; for(;sel<=n;++sel){ bool yes=true; for(int j=1;j<=n;++j){ if(adj[i][j] && sel==col[j]){ yes=false; break; } } if(yes){ col[i]=sel; if(ans<col[i])ans=col[i]; break; } } } printf("%dn", m==0?0:ans);}int main(){ while(scanf("%d%d", &n, &m)==2){ readin(); solve(); } return 0;}