Bajtazar 正在玩一款平台游戏。游戏地图由 $n$ 个垂直排列的平台组成,玩家角色可以在这些平台上移动。每个平台的长度均为 $X$,因此角色的位置可以用一对数字 $(i, x)$ 来描述,其中 $i$ 是从上往下数的平台编号,$x$ 是距离平台左端的距离($1 \le i \le n, 1 \le x \le X$)。角色从某个平台的左端出发,目标是到达任意平台的右端。角色只能向右移动。
为了增加难度,平台上的某些位置设有洞,阻碍玩家移动。角色可以跳过这些洞,或者利用它们掉落到下方的平台或跳到上方的平台。地图上不存在两个垂直重叠的洞,也不存在两个水平相邻的洞。
正式地,如果角色位于位置 $(i, x)$,则可能的移动方式如下:
按下按键 F:可以移动到 $(i, x + 1)$,前提是该位置没有洞。
按下按键 F:如果 $i \neq n$ 且 $(i, x + 1)$ 处有洞,则可以掉落到 $(i + 1, x + 1)$。
按下按键 A:如果 $(i, x + 1)$ 处有洞,则可以跳跃到 $(i, x + 2)$。
按下按键 B:如果 $i \neq 1$ 且 $(i - 1, x)$ 处有洞,则可以跳跃到 $(i - 1, x + 1)$。
已知玩家的初始位置,请计算到达任意平台右端所需的最少跳跃次数(即按下按键 A 和 B 的总次数)。
输入格式
第一行包含三个整数 $n, X$ 和 $z$($1 \le n \le 100\,000, 1 \le X \le 10^9, 1 \le z \le 100\,000$),分别表示平台的数量、长度以及询问次数。
接下来的 $n$ 行描述各个平台;第 $i$ 行以一个非负整数 $k_i$ 开头,表示第 $i$ 行平台上的洞的数量,随后是 $k_i$ 个递增的整数,表示这些洞距离平台左端的距离。任何平台上,左端和右端都不会有洞,洞之间也不相邻。此外,在垂直相邻的平台上,不存在距离平台左端距离相同的洞。所有平台的洞的总数不超过 $2\,000\,000$。
接下来的 $z$ 行包含询问;第 $j$ 行包含一个整数 $p_j$($1 \le p_j \le n$)。
输出格式
程序应输出 $z$ 行;第 $j$ 行应包含一个整数,表示从位置 $(p_j, 1)$ 到达坐标为 $X$ 的位置所需的最少按键 A 和 B 的次数。
样例
输入格式 1
3 9 3 1 6 2 3 8 2 5 7 3 2 1
输出格式 1
1 1 0
说明
样例解释:玩家从 $(3, 1)$ 出发,可以按两次 F 到达 $(3, 3)$,然后按 B 跳到 $(2, 4)$,再按五次 F(期间会掉落到下方),最终到达 $(3, 9)$。
从 $(2, 1)$ 出发,可以按一次 F,然后按一次 A,再按五次 F。
从 $(1, 1)$ 出发,只需一直按 F 即可。
测试用例
- 测试用例 1:$n = 5$,无特殊结构;
- 测试用例 2:$n = 50$,洞呈对角线分布;
- 测试用例 3:$n = 50$,洞呈棋盘格分布。
子任务
| 子任务 | 条件 | 分值 |
|---|---|---|
| 1 | $z \le 5, n \cdot X \le 1\,000\,000$ | 30 |
| 2 | $z \le 5$ | 50 |
| 3 | 无附加条件 | 20 |