为了庆祝新年,Bessie 和她的朋友们建造了一棵挂满发光装饰品的巨型树。Bessie 可以通过遥控器开关这些装饰品。在日出之前,她想要按某种顺序切换一些装饰品的状态(同一个装饰品可能被切换多次),使得树在操作开始和结束时所有装饰品都处于关闭状态。Bessie 认为,如果当前亮起的装饰品集合恰好是某个顶点对应的子树,那么这棵树看起来会很酷。她希望切换装饰品的顺序满足以下性质:对于每一棵子树,在某个时间点,亮起的装饰品集合恰好就是该子树中的所有顶点。此外,开关装饰品需要消耗能量,Bessie 不想浪费能量,因此她想找到她能执行的最少切换次数。
形式化地说,给定一棵以 $1$ 为根的树,顶点编号为 $1\dots N$ ($2\le N\le 2\cdot 10^5$)。每个顶点初始时都是关闭的。在一次操作中,你可以将单个顶点的状态从关闭切换为开启,或从开启切换为关闭。输出满足以下两个条件的序列的最小可能长度:
- 定义以顶点 $r$ 为根的子树包含所有满足 $r$ 在从 $1$ 到 $v$ 的路径上(包含 $1$ 和 $v$)的顶点 $v$。对于树中的每一棵子树,必须存在一个时刻,使得当前亮起的顶点集合恰好是该子树中的所有顶点。
- 在整个操作序列结束后,所有顶点都处于关闭状态。
输入格式
第一行包含 $N$。
第二行包含 $p_2 \dots p_N$ ($1\le p_i
输出格式
输出最小可能的长度。
样例
输入格式 1
3 1 1
输出格式 1
6
说明
这里有三棵子树,分别对应 $\{1,2,3\}$,$\{2\}$ 和 $\{3\}$。以下是最小可能长度的操作序列之一:
activate 2 (activated vertices form the subtree rooted at 2) activate 1 activate 3 (activated vertices form the subtree rooted at 1) deactivate 1 deactivate 2 (activated vertices form the subtree rooted at 3) deactivate 3