Helena 在一家大公司担任心理学家。她的任务是组织一场团队建设游戏,以增强员工之间的社交关系。除了大老板(Big boss)外,每位员工都有一位直属上司。因此,公司的员工构成了一棵树,每位员工是一个节点,其父节点即为他们的上司。树的根节点是大老板。
团队建设游戏需要两人一组。每个团队必须由一名员工及其直属上司组成。
Helena 要求除大老板外的每位员工提交其上司的 ID。其中一些员工没有回复。她打算为每位没有回复的员工指派一名虚构的上司,以便尽可能多地组成团队。当然,虚构的上司和真实的上司必须共同构成一棵树。
Helena 度过了艰难但成功的一天,组织了这场活动。你能帮她指派虚构的上司吗?
输入格式
第一行包含一个整数 $n$ —— 公司员工的人数 ($2 \le n \le 100\,000$)。
接下来一行包含 $n-1$ 个整数 $p_2, p_3, \dots, p_n$,其中 $p_i$ 是员工 $i$ 的上司 ($0 \le p_i \le n$)。如果员工 $i$ 没有回复 Helena,则 $p_i$ 为 $0$,她需要为该员工指派一名虚构的上司。大老板的编号为 $1$。
题目保证可以为每位没有回复的员工指派一名虚构上司,使得所有员工构成一棵以大老板为根的树。
输出格式
第一行输出一个整数 $m$ —— 最多能组成的团队数量。
下一行输出上司信息:包含 $n-1$ 个整数,其中第 $i$ 个整数表示员工 $i+1$ 的上司(虚构或真实)。当然,所有真实的上司必须保留,且员工必须构成一棵树。使用指定的上司配置应当能够组成 $m$ 个团队。
样例
样例输入 1
6 3 1 0 4 4
样例输出 1
2 3 1 2 4 4
样例输入 2
6 3 1 0 6 4
样例输出 2
3 3 1 1 6 4