#include <iostream>
#include <stdio.h>
#include <vector>
#define N 1000007
using namespace std;
vector <int> tree[100007] ;
int level[N] ;
void dfs(int v, int pv){
level[v] = level[pv] + 1 ;
for (int i = 0; i < tree[v].size(); i++){
if (tree[v][i] != pv)
dfs(tree[v][i], v) ;
}
}
int main(){
int n, u, v ;
scanf("%d", &n) ;
if (n == 1){
printf("1\n") ;
return 0 ;
}
for (int i = 1; i < n; i++){
scanf("%d %d", &u, &v) ;
tree[u].push_back(v) ;
tree[v].push_back(u) ;
}
dfs(1, 0) ;
int min1 = 0 ;
int min2 = 0 ;
for (int i = 1; i <=n ;i++){
if(level[i] % 2)
min1++ ;
else
min2++ ;
}
printf("%d\n", min(min1, min2)) ;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHZlY3Rvcj4KI2RlZmluZSBOIDEwMDAwMDcKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZlY3RvciA8aW50PiB0cmVlWzEwMDAwN10JOwppbnQgbGV2ZWxbTl0JOwoKdm9pZCBkZnMoaW50IHYsIGludCBwdil7CgoJbGV2ZWxbdl0gPSBsZXZlbFtwdl0gKyAxCTsKCWZvciAoaW50IGkgPSAwOyBpIDwgdHJlZVt2XS5zaXplKCk7IGkrKyl7CgkJaWYgKHRyZWVbdl1baV0gIT0gcHYpCgkJCWRmcyh0cmVlW3ZdW2ldLCB2KQk7Cgl9Cn0KCmludCBtYWluKCl7CgoJaW50IG4sIHUsIHYJOwoJc2NhbmYoIiVkIiwgJm4pCTsKCWlmIChuID09IDEpewogICAgICAgIHByaW50ZigiMVxuIikgICA7CiAgICAgICAgcmV0dXJuIDAgICAgOwogICAgfQoJZm9yIChpbnQgaSA9IDE7IGkgPCBuOyBpKyspewoKCQlzY2FuZigiJWQgJWQiLCAmdSwgJnYpCTsKCQl0cmVlW3VdLnB1c2hfYmFjayh2KQk7CgkJdHJlZVt2XS5wdXNoX2JhY2sodSkJOwoKCX0KCglkZnMoMSwgMCkJOwoJaW50IG1pbjEgPSAwCTsKCWludCBtaW4yID0gMAk7Cglmb3IgKGludCBpID0gMTsgaSA8PW4gO2krKyl7CgoJCWlmKGxldmVsW2ldICUgMikKCQkJbWluMSsrCTsKCQllbHNlCgkJCW1pbjIrKwk7Cgl9CglwcmludGYoIiVkXG4iLCBtaW4obWluMSwgbWluMikpCTsKCglyZXR1cm4gMAk7Cn0K