#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define rep(i, n) for (int i = 0; i < (int)(n); ++i) #define show(x) cout << #x << " = " << (x) << endl; using namespace std; using ll = long long; using pii = pair; vectorg[123456]; int dp[123456][2]; void dfs(int cur,int par){ dp[cur][0] = 1; for(int x:g[cur]){ if(x!=par){ dfs(x,cur); dp[cur][0] += max(dp[x][0]-1,dp[x][1]); dp[cur][1] += max(dp[x][0],dp[x][1]); } } } int main(){ int n; cin >> n; rep(i,n-1){ int a,b; cin >> a>> b; a--,b--; g[a].push_back(b); g[b].push_back(a); } dfs(0,-1); cout << max(dp[0][0], dp[0][1]) << endl; }