#include<bits/stdc++.h>
using namespace std;
const long long MaxN = 1e5 + 5;
long long n, dp[MaxN][2];
vector<long long> a[MaxN];
void dfs(long long u, long long par)
{
for (long long v : a[u])
{
if(v==par) continue;
dfs(v,u);
dp[u][1]+=dp[v][0];
dp[u][0]+=max(dp[v][0],dp[v][1]);
}
}
void input()
{
cin >> n;
for (long long i=1; i<n ;i++)
{
long long u,v;
cin >> u >> v;
a[u].push_back(v);
a[v].push_back(u);
}
}
void solve()
{
memset(dp,0,sizeof(dp));
for (long long i=1; i<=n ;i++)
{
dp[i][1]=1;
}
dfs(1,-1);
long long ans=0;
for (long long i=1; i<=n; i++)
{
for (long long j=0;j<=1; j++)
{
ans=max(ans,dp[i][j]);
}
}
cout << ans;
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
input();
solve();
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY29uc3QgbG9uZyBsb25nIE1heE4gPSAxZTUgKyA1Owpsb25nIGxvbmcgbiwgZHBbTWF4Tl1bMl07CnZlY3Rvcjxsb25nIGxvbmc+IGFbTWF4Tl07CnZvaWQgZGZzKGxvbmcgbG9uZyB1LCBsb25nIGxvbmcgcGFyKQp7CiAgICBmb3IgKGxvbmcgbG9uZyB2IDogYVt1XSkKICAgIHsKICAgICAgICBpZih2PT1wYXIpIGNvbnRpbnVlOwogICAgICAgIGRmcyh2LHUpOwogICAgICAgIGRwW3VdWzFdKz1kcFt2XVswXTsKICAgICAgICBkcFt1XVswXSs9bWF4KGRwW3ZdWzBdLGRwW3ZdWzFdKTsKICAgIH0KfQp2b2lkIGlucHV0KCkKewogICAgY2luID4+IG47CiAgICBmb3IgKGxvbmcgbG9uZyBpPTE7IGk8biA7aSsrKQogICAgewogICAgICAgIGxvbmcgbG9uZyB1LHY7CiAgICAgICAgY2luID4+IHUgPj4gdjsKICAgICAgICBhW3VdLnB1c2hfYmFjayh2KTsKICAgICAgICBhW3ZdLnB1c2hfYmFjayh1KTsKICAgIH0KfQp2b2lkIHNvbHZlKCkKewogICAgbWVtc2V0KGRwLDAsc2l6ZW9mKGRwKSk7CiAgICBmb3IgKGxvbmcgbG9uZyBpPTE7IGk8PW4gO2krKykKICAgIHsKICAgICAgICBkcFtpXVsxXT0xOwogICAgfQogICAgZGZzKDEsLTEpOwogICAgbG9uZyBsb25nIGFucz0wOwogICAgZm9yIChsb25nIGxvbmcgaT0xOyBpPD1uOyBpKyspCiAgICB7CiAgICAgICAgZm9yIChsb25nIGxvbmcgaj0wO2o8PTE7IGorKykKICAgICAgICB7CiAgICAgICAgICAgIGFucz1tYXgoYW5zLGRwW2ldW2pdKTsKICAgICAgICB9CiAgICB9CiAgICBjb3V0IDw8IGFuczsKfQppbnQgbWFpbigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBjaW4udGllKDApOwogICAgaW5wdXQoKTsKICAgIHNvbHZlKCk7Cn0K