Mr. Peanutbutter 最近发现了一块漂亮的 $n \times n$ 农田,上面种植着各种农作物。Diane 告诉 Mr. Peanutbutter,这块农田世世代代都采用树状矩形法种植农作物。当 Mr. Peanutbutter 被一只鸟分散了注意力时,Diane 继续说道。
农田中的组合矩形是农田方格的一个子集,形式为 $A \times B$,其中 $A$ 和 $B$ 是集合 $\{0, \dots, n - 1\}$ 的子集。
矩形树是一棵有 $k$ 个结点的有根二叉树,具有以下性质:树的每个结点 $v$ 都被标记为一个组合矩形 $r(v) \subseteq \{0, \dots, n-1\} \times \{0, \dots, n-1\}$。如果 $s$ 是树的一个内部结点,$c_1$ 和 $c_2$ 是它的直接子结点,那么它们的组合矩形构成了 $r(s)$ 的一个划分:形式上,$r(s) = r(c_1) \cup r(c_2)$ 且 $r(c_1) \cap r(c_2) = \emptyset$。一个结点不能只有一个直接子结点。
令 $Crop(x, y)$ 为农田方格 $(x, y) \in \{0, \dots, n - 1\} \times \{0, \dots, n - 1\}$ 上种植的农作物类型。如果 $r(\text{Root}) = \{0, \dots, n - 1\} \times \{0, \dots, n - 1\}$,且对于每个叶子结点 $\ell$,组合矩形 $r(\ell)$ 上只种植一种类型的农作物(即对于任意两个 $(x, y), (x', y') \in r(\ell)$,都有 $Crop(x, y) = Crop(x', y')$),则称以 $\text{Root}$ 为根的矩形树 $T$ 计算了该农田的农作物类型。
树 $T$ 的深度是树的根结点与叶子结点之间的最大距离。此处,距离是指结点间最短路径上的边数。
树 $T$ 的大小是其包含的结点数。
给定一棵计算农作物类型 $Crop$ 的矩形树 $T$。令 $T$ 的大小为 $S$。请构造另一棵计算 $Crop$ 的矩形树 $T'$,使得其深度不超过 $3 \log_2 S$,且大小不超过 $5S$。
输入格式
第一行包含一个整数 $n$,表示农田的大小 ($1 \le n \le 1000$)。接下来的 $n$ 行,每行包含 $n$ 个整数,描述农作物的类型。第 $i$ 行的第 $j$ 个整数是方格 $(i, j)$ 上的农作物类型。所有类型均为不超过 $10^7$ 的正整数。
下一行包含一个整数 $S$,表示矩形树的大小 ($1 \le S \le 10\,000, S \cdot n \le 10^6$)。
接下来的 $S$ 行中,第 $i$ 行包含第 $i$ 个结点的描述。它包含若干个空格分隔的整数:$p, m_1, m_2, a_1, \dots, a_{m_1}, b_1, \dots, b_{m_2}$。其中 $p \in \{0, 1, \dots, S - 1\}$ 是结点 $i$ 的父结点编号(如果 $i$ 是根结点,则 $p = i$),该结点对应的组合矩形为 $r(i) = \{a_1, \dots, a_{m_1}\} \times \{b_1, \dots, b_{m_2}\}$。
保证如果 $\ell$ 是树的叶子结点,则 $r(\ell)$ 中的所有农作物类型相同。此外,对于每个具有直接子结点 $c_1$ 和 $c_2$ 的内部结点 $v$,矩形 $r(c_1)$ 和 $r(c_2)$ 构成了 $r(v)$ 的一个划分:$r(v) = r(c_1) \cup r(c_2)$ 且 $r(c_1) \cap r(c_2) = \emptyset$。最后,如果 $i$ 是根结点,则 $r(i) = \{0, \dots, n-1\} \times \{0, \dots, n-1\}$。
输出格式
输出一棵深度不超过 $3 \log_2 S$ 且大小不超过 $5S$ 的矩形树,使其同样计算给定的农作物类型。树的输出格式应与输入格式相同。
样例
输入 1
3 1 1 2 1 1 2 2 2 2 5 0 3 3 0 1 2 0 1 2 0 3 2 0 1 2 0 1 0 3 1 0 1 2 2 1 2 2 0 1 0 1 1 1 2 2 0 1
输出 1
7 0 3 3 0 1 2 0 1 2 0 1 3 2 0 1 2 1 1 2 2 0 1 1 1 1 2 2 0 2 3 0 1 0 1 2 4 2 1 0 1 2 4 2 2 0 1 0 1