#include <bits/stdc++.h>
using namespace std;
const int maxn=100005;
int n;
vector<int> G[maxn];
int dfs(int u,int fa) {
    int ret=0,empty=0;
    for (int i=0;i<(int)G[u].size();++i) {
        int v=G[u][i];
        if (v==fa) continue;
        int x=dfs(v,u);
        if (x)
            ret+=x;
        else
            ++empty;
    }
    return ret+max(0,empty-1);
}
int main()
{
    scanf("%d",&n);
    for (int i=0;i<n-1;++i) {
        int u,v;
        scanf("%d%d",&u,&v);
        G[u].push_back(v);
        G[v].push_back(u);
    }
    int res=1;
    for (int i=0;i<n;++i)
        if ((int)G[i].size()>2) {
            res=max(res,dfs(i,-1));
            break;
        }
    printf("%d\n",res);
    return 0;
}
/*
10
2 8
6 0
4 1
7 6
2 3
8 6
6 9
2 4
5 8
*/
