#include<cstdio>

using namespace std;

const int maxn=200010;
int fa[maxn],siz[maxn],ans=0;
inline int getf(int x){
	return x==fa[x]?x:fa[x]=getf(fa[x]);
}

inline int Max(int a,int b){
	return a>b?a:b;
}

int main(){
	int n,m;
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++) fa[i]=i,siz[i]=1;
	for(int i=1;i<=m;i++){
		int x,y;scanf("%d%d",&x,&y);
		int fx=getf(x),fy=getf(y);
		if(fx==fy) continue;
		fa[fx]=fy;
		siz[fy]+=siz[fx];
		ans=Max(ans,siz[fy]);
	}
	printf("%d\n",Max(1,ans));
	return 0;
}