#include<bits/stdc++.h>
using namespace std;
const int N = 2e4 + 10;
int n, f[N][3], t = 9999999;
vector <int> g[N];
void dfs (int u, int father)
{
t = 9999999;
for (int i = 0; i < g[u].size (); i++)
{
int v = g[u][i];
if (v == father)
{
continue;
}
dfs (v, u);
f[u][0] += min (f[v][0], f[v][2]);
t = min (t, f[v][2] - min(f[v][2], f[v][0]));
f[u][1] += min (f[v][2], f[v][0]);
f[u][2] += min (f[v][1], min (f[v][0], f[v][2]));
}
f[u][0] += t;
return;
}
int main ()
{
cin >> n;
for (int i = 1; i < n; i++)
{
int a, b;
cin >> a >> b;
g[b].push_back (a);
g[a].push_back (b);
}
for (int i = 1; i <= n; i++)
{
f[i][0] = f[i][1] = 0;
f[i][2] = 1;
}
dfs (1, 0);
cout << min (f[1][0], f[1][2]);
return 0;
}