import java.util.*;
public class One {
static class TreeNode {
int val;
TreeNode left;
TreeNode right;
public TreeNode(int x) { val = x; }
public void TreeNodeNext(TreeNode a){
if(left==null)left=a;
else right=a;
}
}
static int getNodeNum(TreeNode root) {
if (root == null) {
return 0;
}
return getNodeNum(root.left) + getNodeNum(root.right) + 1;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n= scanner.nextInt();
HashMap<Integer,TreeNode>hashMap=new HashMap<>();
for (int i = 0; i <n-1 ; i++) {
int a= scanner.nextInt();
int b= scanner.nextInt();
if(!hashMap.containsKey(a))hashMap.put(a,new TreeNode(a));
if(!hashMap.containsKey(b))hashMap.put(b,new TreeNode(b));
hashMap.get(b).TreeNodeNext(hashMap.get(a));//我这默认的是例如3-2 2是父节点 3是子节点 题目给的测试用例是这样,可能其他的例子不是
}
TreeNode root=hashMap.get(1);
int sumleft=0,sumright=0;
if (root.left!=null) sumleft=getNodeNum(root.left);
if (root.right!=null) sumright=getNodeNum(root.right);
System.out.println(Math.max(sumleft,sumright));
}
}