#joi2006yod. [joi2006yo_d]JOI 2006 予選 問題4

[joi2006yo_d]JOI 2006 予選 問題4

问题

nn 个不同大小的杯子和 33 个托盘 A、B、C。这些杯子被分别堆叠在三个托盘上,每个托盘上都有一些杯子。然而,在任何一个托盘上,最小的杯子在底部,第二小的杯子在其上面,第三小的杯子在其上面,依此类推,以小到大的顺序叠放着。例如,下图的右边显示了 n=5n=5 个杯子在托盘 A、B、C 上分别叠放 220033 个的状态。

2006-yo-t4-fig1.png

给定杯子的初始状态,我们想要按照以下规则 11 ~ 33,将所有杯子移动到托盘 A 或 C 中的一个,问至少需要移动几次。

(规则 11)每次只能移动一个杯子。该杯子是托盘上的最顶层杯子(也就是最大的杯子)。
(规则 22)不能将较大的杯子叠放在较小的杯子上。
(规则 33)只允许直接将一个杯子从托盘 A 移动到 B、从 B 移动到 A、从 B 移动到 C、从 C 移动到 B。不能直接将一个杯子从 A 移动到 C 或从 C 移动到 A。

给定nn个杯子的初始状态和整数mm,判断在mm次移动以内,是否可以将所有杯子堆叠在托盘 A 或 C 中,并输出移动的最小次数。如果不可行,则输出 1-1

输入的第一行包含以空格分隔的nnmm,满足1n151 \leq n \leq 151m15,000,0001 \leq m \leq 15,000,000。第二行、第三行和第四行将nn个整数以升序方式分成三组,并写明每组中的元素个数。其中,第二行的整数(除去首个整数)表示堆叠在托盘 A 上的杯子的大小,类似地,第三行的整数表示堆叠在托盘 B 上的杯子的大小,第四行的整数表示堆叠在托盘 C 上的杯子的大小。

在输出中,在输出移动次数或 1-1 后加上换行符。


输入示例 1

3 10
0
1 1
2 2 3

输出示例 1

9

输入示例 2

4 20
2 1 2
1 3
1 4

输出示例 2

3

输入示例 3

2 5
2 1 2
0
0

输出示例 3

0

输入示例 4

3 3
0
1 1
2 2 3

输出示例 4

-1