// 求并查集中集合中元素的个数。。。
#include<stdio.h>
#define N 10000001int Tree[N];
int sum[N]; // 以结点i为根的树的结点个数,仅当Tree[i]=-1时有效
int findRoot(int x){ // 查找结点x所在树的根结点,并查集
if(Tree[x]==-1) return x;
else{
int tmp=findRoot(Tree[x]);
Tree[x]=tmp;
return tmp;
}
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF){
for(int i=1;i<=N;i++){ // 初始化结点信息
Tree[i]=-1; sum[i]=1; // 所有节点为孤立集合,元素个数为1
}
while(n--){
int a,b;
scanf("%d%d",&a,&b);
a=findRoot(a); b=findRoot(b);
if(a!=b) {
Tree[a]=b;
sum[b]+=sum[a]; // 合并两个集合时,将子树的根结点所在集合的结点个数累加到新树的树根
}
}
int ans=1; // 答案至少为1
for(int i=1;i<=N;i++){
if(Tree[i]==-1 && sum[i]>ans) ans=sum[i]; // 统计最大值
}
printf("%d\n",ans);
}
return 0;
}