import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;

public class Bob {

    public static void main(String[] args) {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int nVertex;
        int start,end;

        String[] pattern;

        try {
            String[] line = br.readLine().split("\\s+");
            nVertex = Integer.parseInt(line[0]);

            Graph graph = new Graph(nVertex);
            for (int i = 0; i < nVertex - 1; i++) {
                pattern = br.readLine().split("\\s+");
                start = Integer.parseInt(pattern[0]);
                end = Integer.parseInt(pattern[1]);
                graph.add(start - 1, end - 1);
            }

            int[] levels = graph.getLevels();
            int freeCircles = 0;
            int actions = 0;
            while (!allLevels(levels)) {
                for (int i = 0; i < levels.length; i++) {
                    if (levels[i] > 2) {
                        --levels[i];
                        ++actions;
                    }
                }
            }


            System.out.println(actions);
        }
        catch (IOException e) {
            e.printStackTrace();
        }
    }

    private static boolean allLevels(int[] levels) {
        for (int i = 0; i < levels.length; i++) {
            if (levels[i ]> 2) {
                return false;
            }
        }
        return true;
    }

    public static class Node {
        public int id;
        public ArrayList<Node> next = new ArrayList<>();
        public boolean visited = false;
    }

    public static class Graph {
        ArrayList<Node> vertexes = new ArrayList<>();
        int n;
        public Graph(int n) {
            Node node;
            this.n = n;
            for (int i = 0; i < n; i++) {
                node = new Node();
                node.id = i;
                vertexes.add(node);
            }
        }

        public void add(int i, int j) {
            vertexes.get(i).next.add(vertexes.get(j));
            vertexes.get(j).next.add(vertexes.get(i));
        }

        public int[] getLevels() {
            int[] levels = new int[n];

            for (int i = 0; i < levels.length; i++) {
                levels[i] = vertexes.get(i).next.size();
            }

            return levels;
        }
    }
}

