#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1000001;
vector<int> g[MAXN];
int dp[MAXN][2];
bool visited[MAXN];
void dfs(int u) {
visited[u] = true;
dp[u][0] = 0;
dp[u][1] = 1;
for (int v : g[u]) {
if (!visited[v]) {
dfs(v);
dp[u][0] += dp[v][1];
dp[u][1] += min(dp[v][0], dp[v][1]);
}
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int N;
cin >> N;
for (int i = 0; i < N-1; i++) {
int u, v;
cin >> u >> v;
g[u].push_back(v);
g[v].push_back(u);
}
dfs(1);
cout << min(dp[1][0], dp[1][1]) << "\n";
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTUFYTiA9IDEwMDAwMDE7CnZlY3RvcjxpbnQ+IGdbTUFYTl07CmludCBkcFtNQVhOXVsyXTsKYm9vbCB2aXNpdGVkW01BWE5dOwoKdm9pZCBkZnMoaW50IHUpIHsKICAgIHZpc2l0ZWRbdV0gPSB0cnVlOwogICAgZHBbdV1bMF0gPSAwOwogICAgZHBbdV1bMV0gPSAxOwogICAgZm9yIChpbnQgdiA6IGdbdV0pIHsKICAgICAgICBpZiAoIXZpc2l0ZWRbdl0pIHsKICAgICAgICAgICAgZGZzKHYpOwogICAgICAgICAgICBkcFt1XVswXSArPSBkcFt2XVsxXTsKICAgICAgICAgICAgZHBbdV1bMV0gKz0gbWluKGRwW3ZdWzBdLCBkcFt2XVsxXSk7CiAgICAgICAgfQogICAgfQp9CgppbnQgbWFpbigpIHsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7CiAgICAKICAgIGludCBOOwogICAgY2luID4+IE47CiAgICBmb3IgKGludCBpID0gMDsgaSA8IE4tMTsgaSsrKSB7CiAgICAgICAgaW50IHUsIHY7CiAgICAgICAgY2luID4+IHUgPj4gdjsKICAgICAgICBnW3VdLnB1c2hfYmFjayh2KTsKICAgICAgICBnW3ZdLnB1c2hfYmFjayh1KTsKICAgIH0KICAgIAogICAgZGZzKDEpOwogICAgY291dCA8PCBtaW4oZHBbMV1bMF0sIGRwWzFdWzFdKSA8PCAiXG4iOwp9