单点时限: 1.0 sec
内存限制: 128 MB
$\texttt{sha7dow}$ 很喜欢数据结构,特别是各种奇奇怪怪的树。$\texttt{sha7dow}$ 刚刚得到了一个完美的顺序存储二叉堆,这是一个 $n+1$ 层的满二叉树,他希望你能帮助他用这个完美的二叉堆 $H$ 生成另一个树 $T$。
$\texttt{sha7dow}$ 不希望这个生成过程中的图过于复杂,所以你需要保证整个过程中与 $H$ 和 $T$ 中的每个节点相连的边都不应超过 $k$ 条。
输入一行两个整数 $n,k$,分别表示 $H$ 的层数和每个节点连边的限制。
第一行包含一个整数 $m$,表示 $T$ 的节点数。
第二行包含 $2^{n+1} - 1$ 个整数 $t_i$,表示对于 $H$ 中的每个节点 $i$ ,被选择连边的 $T$ 中的节点。
2 2000
2 2 1 1 2 1 1 2
$1 \leqslant n \leqslant 20 \leqslant k \leqslant 10^6$
$1 \leqslant t_i \leqslant m < 2^{n+1}$
堆通常是一个可以被看做一棵完全二叉树的数组对象,被称为顺序存储,其中 $x$ 和 $2x$ 连边,$x$ 和 $2x+1$ 连边($x$ 为所有非叶子节点,特别地,如果是一个 $n+1$ 层的满二叉树,则 $1 \leqslant x < 2^n$)。