Anna van Lier 教授正在准备一场关于平衡二叉搜索树的讲座。回想一下,平衡二叉搜索树具有以下两个性质:
- 平衡树:对于每个节点,其左子树的高度与右子树的高度之差不超过 1。例如在图 B.1 中,节点 7 的左子树高度为 2,右子树高度为 1。如果一个节点没有左(或右)子树,则该子树的高度视为 0。
- 搜索树:每个节点都有一个值。节点的值大于其左子树中所有节点的值,且小于其右子树中所有节点的值。例如在图 B.1 中,节点 7 的左子树包含值 4、5 和 6,它们都小于 7。
Anna 从同事那里得到了一棵这样的树。这棵树有 $n$ 个节点,节点的值为 $1$ 到 $n$。然而,这棵树太大了,无法放入她的幻灯片中,因此她想将其缩小。具体来说,她希望从树中删除一些节点,使得剩余的节点恰好有 $k$ 个。每当她删除一个节点时,她也会删除该节点的子树。当然,生成的树必须仍然是一棵平衡二叉搜索树。
出于教学目的,Anna 希望最终树中的节点值尽可能小。因此,她希望剩余的 $k$ 个节点值的列表在字典序上尽可能小。例如,她更倾向于包含值 2, 5, 9 的树,而不是包含值 2, 6, 7 的树。
由于 Anna 忙于处理更重要的事情,寻找要删除哪些节点的任务就落在了她的助教(也就是你)身上。
图 B.1:样例输入 2 及其解的示意图。
输入格式
输入包含:
- 一行,包含两个整数 $n$ 和 $k$ ($2 \le n \le 5 \cdot 10^5$, $1 \le k \le n - 1$),表示树中的节点数和要保留的节点数。
- $n$ 行,第 $i$ 行包含一个整数 $p_i$ ($1 \le p_i \le n$ 或 $p_i = -1$),表示值为 $i$ 的节点的父节点,如果值为 $i$ 的节点是根节点,则为 $-1$。
保证给定的树是一棵平衡二叉搜索树。
输出格式
输出一行长度为 $n$ 的二进制字符串。如果值为 $i$ 的节点应被保留,则第 $i$ 个字符应为 '1';如果应被删除,则为 '0'。
样例
样例输入 1
3 1 2 -1 2
样例输出 1
010
样例输入 2
8 5 3 1 -1 5 7 5 3 7
样例输出 2
11101010