import java.util.ArrayList;
import java.util.List;

public class Main implements Runnable {
    public static void main(String[] args) {
        new Thread(null, new Main(), "", 256 * (1L << 20)).start();
    }

    @Override
    public void run() {
        int n = 500000;
        List<Integer>[] g = new List[n];
        for (int i = 0; i < n; i++) {
            g[i] = new ArrayList<>();
        }
        for (int i = 1; i < n; i++) {
            int p = i - 1;
            g[i].add(p);
            g[p].add(i);
        }

        long t1 = System.nanoTime();
        int result = dfs(0, -1, g);
        long t2 = System.nanoTime();
        System.out.println("time = " + (t2 - t1) / 1.0e9 + " sec, result = " + result);
    }

    private int dfs(int x, int p, List<Integer>[] g) {
        int result = 1;
        for (int y : g[x]) {
            if (y == p) {
                continue;
            }
            result += dfs(y, x, g);
        }
        return result;
    }
}