#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 2 * 1e5 + 5;
int n, x, y, ans, p[MAX_N], d[MAX_N];
vector<int> g[MAX_N];
set<pair<int, int> > st;
void dfs(int v, int pa) {
  p[v] = pa;
  if (pa == -1) {
    d[v] = 0;
  } else {
    d[v] = d[pa] + 1;
  }
  for (auto u : g[v]) {
    if (u != pa) {
      dfs(u, v);
    }
  }
}
int main() {
  cin >> n;
  for (int i = 0; i < n - 1; ++i) {
    cin >> x >> y;
    --x;
    --y;
    g[x].push_back(y);
    g[y].push_back(x);
  }
  dfs(0, -1);
  for (int i = 1; i < n; ++i) {
    if (d[i] > 2) {
      st.insert({-d[i], i});
    }
  }
  while (!st.empty()) {
    int tp = st.begin()->second;
    tp = p[tp];
    auto it = st.find({-d[tp], tp});
    if (it != st.end()) {
      st.erase(it);
    }
    for (auto u : g[tp]) {
      auto it = st.find({-d[u], u});
      if (it != st.end()) {
        st.erase(it);
      }
    }
    ++ans;
  }
  cout << ans << endl;
  return 0;
}
