# Trees

# Tree with small distances

You are given an undirected tree consisting of **n** vertices. An undirected tree is a connected undirected graph with **n** − **1** edges.

Your task is to add the minimum number of edges in such a way that the length of the shortest path from the vertex **1** to any other vertex is at most **2**. Note that you are not allowed to add loops and multiple edges.

#### Input

The first line contains one integer **n** (**2** ≤ **n** ≤ **2** * `10`

) — the number of vertices in the tree.^{5}

The following **n** − **1** lines contain edges: edge **i** is given as a pair of vertices `u`

, _{i}`v`

(_{i}**1** ≤ `u`

, _{i}`v`

≤ _{i}**n**). It is guaranteed that the given edges form a tree. It is guaranteed that there are no loops and multiple edges in the given edges.

#### Output

Print a single integer — the minimum number of edges you have to add in order to make the shortest distance from the vertex **1** to any other vertex at most **2**. Note that you are not allowed to add loops and multiple edges.

7 1 2 2 3 2 4 4 5 4 6 5 7

2

7 1 2 1 3 2 4 2 5 3 6 1 7

0