#include <bits/stdc++.h>
using namespace std;
#define endl "\n"
#define int long long
#define faster() ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
const int MOD = 1e9 + 7 ;
int n , m, ans = 1 ;
int parent[1005], sz[1005];
bool visited[1005];
void init(){
for(int i = 1 ; i <= n ; i++){
parent[i] = i ;
sz[i] = 1;
}
}
int Find(int u){
if(u == parent[u]) return u;
else return Find(parent[u]);
}
int Union(int x , int y){
x = Find(x);
y = Find(y);
if(x == y) return false ;
else{
if(sz[x] < sz[y]){
parent[x] = y ;
sz[y] += sz[x];
ans = max(ans , sz[y]);
}
else{
parent[y] = x ;
sz[x] += sz[y];
ans = max(ans , sz[x]);
}
}
return ans ;
}
void solve(){
cin >> n >> m ;
init();
bool check = false ;
for(int i = 1 ; i <= m ; i++){
int x , y ; cin >> x >> y ;
Union(x , y);
}
cout << ans << endl;
}
signed main() {
faster();
int test = 1 ;
// cin >> test ;
while(test--) solve();
return 0;
}
CgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBlbmRsICJcbiIKI2RlZmluZSBpbnQgbG9uZyBsb25nCiNkZWZpbmUgZmFzdGVyKCkgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyBjaW4udGllKG51bGxwdHIpOyBjb3V0LnRpZShudWxscHRyKTsKY29uc3QgaW50IE1PRCA9IDFlOSArIDcgOwoKaW50IG4gICwgbSwgYW5zID0gMSA7CmludCBwYXJlbnRbMTAwNV0sIHN6WzEwMDVdOwpib29sIHZpc2l0ZWRbMTAwNV07Cgp2b2lkIGluaXQoKXsKICAgIGZvcihpbnQgaSA9IDEgOyBpIDw9IG4gOyBpKyspewogICAgICAgIHBhcmVudFtpXSA9IGkgOwogICAgICAgIHN6W2ldID0gMTsKICAgIH0KfQoKaW50IEZpbmQoaW50IHUpewogICAgaWYodSA9PSBwYXJlbnRbdV0pIHJldHVybiB1OwogICAgZWxzZSByZXR1cm4gRmluZChwYXJlbnRbdV0pOwp9CgppbnQgVW5pb24oaW50IHggLCBpbnQgeSl7CiAgICB4ID0gRmluZCh4KTsKICAgIHkgPSBGaW5kKHkpOwogICAgaWYoeCA9PSB5KSByZXR1cm4gZmFsc2UgOwogICAgZWxzZXsKICAgICAgICBpZihzelt4XSA8IHN6W3ldKXsKICAgICAgICAgICAgcGFyZW50W3hdID0geSA7CiAgICAgICAgICAgIHN6W3ldICs9IHN6W3hdOwogICAgICAgICAgICBhbnMgPSBtYXgoYW5zICwgc3pbeV0pOwogICAgICAgIH0KICAgICAgICBlbHNlewogICAgICAgICAgICBwYXJlbnRbeV0gPSB4IDsKICAgICAgICAgICAgc3pbeF0gKz0gc3pbeV07CiAgICAgICAgICAgIGFucyA9IG1heChhbnMgLCBzelt4XSk7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIGFucyA7Cn0KCnZvaWQgc29sdmUoKXsKICAgIGNpbiA+PiBuID4+IG0gOwogICAgaW5pdCgpOwogICAgYm9vbCBjaGVjayA9IGZhbHNlIDsKICAgIGZvcihpbnQgaSA9IDEgOyBpIDw9IG0gOyBpKyspewogICAgICAgIGludCB4ICwgeSA7IGNpbiA+PiB4ID4+IHkgOwogICAgICAgIFVuaW9uKHggLCB5KTsKICAgIH0KICAgIGNvdXQgPDwgYW5zIDw8IGVuZGw7Cn0KCnNpZ25lZCBtYWluKCkgewogICAgZmFzdGVyKCk7IAogICAgaW50IHRlc3QgPSAxIDsgCiAgICAvLyBjaW4gPj4gdGVzdCA7CiAgICB3aGlsZSh0ZXN0LS0pICAgc29sdmUoKTsKICAgIHJldHVybiAwOwp9CgoKCg==