AT_joi2006yo_d JOI 2006 予選 問題4

题目描述

现有大小各异的 $ n $ 个杯子以及 $ 3 $ 个托盘 A、B 和 C。其中,这些杯子已经根据大小分别倒扣在这 $ 3 $ 个托盘上。在每个托盘上,杯子按照从小到大的顺序堆叠(即最小的在最底下,第二小的在上面,依此类推)。例如,下图右侧展示了当 $ n = 5 $ 时,托盘 A 上有 $ 2 $ 个杯子,托盘 B 上没有杯子,托盘 C 上有 $ 3 $ 个杯子的情况。 ![2006-yo-t4-fig1.png](https://cdn.luogu.com.cn/upload/vjudge_pic/AT_joi2006yo_d/3989e3a74d2da66b9d13ba7c6fcf2f10582e4236.png) 在保证遵循下述规则 1 到 3 的前提下,我们需要将所有杯子移到托盘 A 或托盘 C 上,并计算所需的最少移动次数。 1. 每次只能移动一个杯子,并且只能是该托盘顶部的杯子(即最大号的)。 2. 小号的杯子不能放在大号杯子之上。 3. 杯子的直接移动仅限于托盘 A 到 B,B 到 A,B 到 C 和 C 到 B,不允许直接从 A 移动到 C 或从 C 移动到 A。 给定杯子初始状态以及一个整数 $ m$,要求你判断是否能在最多 $ m $ 次移动内,将所有杯子移到托盘 A 或 C 上。如果可能,输出所需的最少移动次数;如果不可能,输出 $ -1 $。 输入的第一行为两个整数 $ n $ 和 $ m $(以空格分隔),分别表示杯子数量和允许的最多移动次数。接下来的三行每行以一个整数开头,表示该行中紧接着几个整数的数量。后续的整数表示托盘 A、B 和 C 上的杯子大小,已按升序排列。 输出一个整数,表示最少的移动次数或 $ -1 $,并在输出后换行。

输入格式

第一行:两个整数 $ n $ 和 $ m $(1 ≤ $ n $ ≤ 15,1 ≤ $ m $ ≤ 15,000,000) 接下来三行:每行第一个整数表示后续杯子的数量,后续整数表示该托盘上的杯子大小,按升序排列。

输出格式

输出一个整数,表示最少的移动次数或 $ -1 $,并在输出后换行。 **本翻译由 AI 自动生成**

说明/提示

### Sample Explanation 1 \- - - - - - ### Sample Explanation 2 \- - - - - - ### Sample Explanation 3 \- - - - - -