//理论的东西 http://www.cnblogs.com/whatbeg/p/3776612.html
//原题是POJ3659
#include <iostream>
#include<stdio.h>
#include<string.h>
#include<string>
using namespace std;
const int maxn=10000+10;
int head[maxn];
int next[2*maxn];
int to[2*maxn];
int fa[maxn];
int s[maxn];
int set1[maxn];
int tot;
int now;
int n;
void init()
{
now=0;
tot=0;
memset(head,-1,sizeof(head));
}
void addedge(int u,int v)
{
to[tot]=v;
next[tot]=head[u];
head[u]=tot++;
}
int id[maxn];
void dfs(int x)
{
//cout<<"x:"<<""<<now<<" "<<x<<endl;
id[now++]=x;
for(int i=head[x];i!=-1;i=next[i])
{
if(to[i]==fa[x])
continue;
int v=to[i];
fa[v]=x;
dfs(v);
}
}
int ans;
void greedy()
{
memset(s,0,sizeof(s));
memset(set1,0,sizeof(set1));
ans=0;
// cout<<"n:"<<n<<endl;
for(int i=n-1;i>=0;i--)
{
int t=id[i];
//cout<<"t:"<<t<<" "<<i<<endl;
if(!s[t])
{
if(!set1[fa[t]])
{
ans++;
set1[fa[t]]=1;
}
s[t]=1;
s[fa[t]]=1;
s[fa[fa[t]]]=1;
}
}
printf("%d\n",ans);
}
int main()
{
//freopen("input.txt", "r", stdin);
// freopen("out.txt", "w", stdout);
while(scanf("%d",&n)!=EOF)
{
init();
for(int i=1;i<n;i++)
{
int a,b;
scanf("%d%d",&a,&b);
addedge(a,b);
addedge(b,a);
}
dfs(1);
greedy();
}
// fclose(stdin);
// fclose(stdout);
return 0;
}