#include <bits/stdc++.h>
#include <iostream>
#define MOD 1000000007//10e9+7;
#define MAX 1000003
#define T() int t; scanf("%d",&t);while(t--)
#define FOR(i,a,b) for(int (i) = (a); (i) < (b); (i)++)
#define RFOR(i,a,b) for(int (i) = (a)-1; (i) >= (b); (i)--)
#define CLEAR(a) memset((a),0,sizeof(a))
#define all(v) v.begin(), v.end()
#define si(x) scanf("%d",&x)
#define sll(x) scanf("%lld",&x)
#define pi(x) printf("%d\n",x)
#define pll(x) printf("%lld\n",x)
#define fi first
#define se second
#define pb push_back
#define mp make_pair
using namespace std;
typedef long long int ll;
typedef vector<int> vi;
typedef vector<ll> vl;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
int main()
{
int n,m,u,v;
si(n);si(m);
vi g[n+1];
FOR(i,0,m)
{
si(u);si(v);
g[u].pb(v);
g[v].pb(u);
}
bool visited[n+1];
memset(visited,false,sizeof(visited));
stack<int> s;
int ans,count,k;
ans=0;
FOR(i,1,n+1)
{
count=0;
if(!visited[i])
{
s.push(i);
while(!s.empty())
{
k = s.top();
s.pop();
for(int j=0;j<g[k].size();j++)
{
if(!visited[g[k][j]])
{
count++;
s.push(g[k][j]);
visited[g[k][j]]=true;
}
}
}
ans = max(ans,count);
}
}
pi(ans);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2RlZmluZSBNT0QgMTAwMDAwMDAwNy8vMTBlOSs3OwojZGVmaW5lIE1BWCAxMDAwMDAzCiNkZWZpbmUgVCgpIGludCB0OyBzY2FuZigiJWQiLCZ0KTt3aGlsZSh0LS0pCiNkZWZpbmUgRk9SKGksYSxiKSBmb3IoaW50IChpKSA9IChhKTsgKGkpIDwgKGIpOyAoaSkrKykKI2RlZmluZSBSRk9SKGksYSxiKSBmb3IoaW50IChpKSA9IChhKS0xOyAoaSkgPj0gKGIpOyAoaSktLSkKI2RlZmluZSBDTEVBUihhKSBtZW1zZXQoKGEpLDAsc2l6ZW9mKGEpKQojZGVmaW5lIGFsbCh2KSB2LmJlZ2luKCksIHYuZW5kKCkKI2RlZmluZSBzaSh4KSBzY2FuZigiJWQiLCZ4KQojZGVmaW5lIHNsbCh4KSBzY2FuZigiJWxsZCIsJngpCiNkZWZpbmUgcGkoeCkgcHJpbnRmKCIlZFxuIix4KQojZGVmaW5lIHBsbCh4KSBwcmludGYoIiVsbGRcbiIseCkKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIG1wIG1ha2VfcGFpcgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnR5cGVkZWYgbG9uZyBsb25nIGludCBsbDsKdHlwZWRlZiB2ZWN0b3I8aW50PiB2aTsKdHlwZWRlZiB2ZWN0b3I8bGw+IHZsOwp0eXBlZGVmIHBhaXI8aW50LGludD4gcGlpOwp0eXBlZGVmIHBhaXI8bGwsbGw+IHBsbDsKCmludCBtYWluKCkgCnsKCWludCBuLG0sdSx2OwoJc2kobik7c2kobSk7Cgl2aSBnW24rMV07CglGT1IoaSwwLG0pCgl7CgkJc2kodSk7c2kodik7CgkJZ1t1XS5wYih2KTsKCQlnW3ZdLnBiKHUpOwoJfQoJYm9vbCB2aXNpdGVkW24rMV07CgltZW1zZXQodmlzaXRlZCxmYWxzZSxzaXplb2YodmlzaXRlZCkpOwoJc3RhY2s8aW50PiBzOwoJaW50IGFucyxjb3VudCxrOwoJYW5zPTA7CglGT1IoaSwxLG4rMSkKCXsKCQljb3VudD0wOwoJCWlmKCF2aXNpdGVkW2ldKQoJCXsKCQkJcy5wdXNoKGkpOwoJCQl3aGlsZSghcy5lbXB0eSgpKQoJCQl7CgkJCQlrID0gcy50b3AoKTsKCQkJCXMucG9wKCk7CgkJCQlmb3IoaW50IGo9MDtqPGdba10uc2l6ZSgpO2orKykKCQkJCXsKCQkJCQlpZighdmlzaXRlZFtnW2tdW2pdXSkKCQkJCQl7CgkJCQkJCWNvdW50Kys7CgkJCQkJCXMucHVzaChnW2tdW2pdKTsKCQkJCQkJdmlzaXRlZFtnW2tdW2pdXT10cnVlOwoJCQkJCX0KCQkJCX0KCQkJfQoJCQlhbnMgPSBtYXgoYW5zLGNvdW50KTsKCQkJCgkJfQoJfQoJcGkoYW5zKTsKCXJldHVybiAwOwp9