我们正在考虑建造一道非常长的栅栏。我们已经选好了建造地点,现在只需要收集材料。
从当地的五金店,我们可以购买数量不限的木板,每种木板都有多种不同的长度。为了避免浪费,我们希望确保这些木板的总长度与我们要建造的栅栏长度完全相等。
给定栅栏的长度以及我们可以使用的木板长度,为了得到恰好所需的长度,我们需要购买的最少木板数量是多少?
注意: 栅栏将会非常长!
输入格式
输入文件的第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例。
每个测试用例包含两行。第一行包含用空格分隔的整数 $L$ 和 $N$。它们分别代表栅栏的总长度和可以购买的木板长度种类数。第二行包含 $N$ 个用空格分隔的整数 $B_1, B_2, \dots, B_N$,代表所有可能的木板长度。
输出格式
对于每个测试用例,输出一行 "Case #x: M",其中 $x$ 是测试用例编号(从 1 开始),$M$ 的含义如下:
- 如果可以通过购买一块或多块木板使得它们的总长度恰好等于 $L$,则 $M$ 应为实现此目标所需的最少木板数量。
- 否则,$M$ 应为字符串 "IMPOSSIBLE"。
数据范围
$1 \le T \le 50$
$10^{10} \le L \le 10^{18}$
$1 \le N \le 100$
小数据(测试集 1 - 可见;7 分)
$1 \le B_i \le 100$
大数据(测试集 2 - 隐藏;22 分)
$1 \le B_i \le 100000$
样例
输入格式 1
2 10000000001 3 23 51 100 10000000001 3 100 52 22
输出格式 1
Case #1: 100000004 Case #2: IMPOSSIBLE
说明
在第一个样例中,最优策略是使用 2 块长度为 23 的木板,5 块长度为 51 的木板,以及 99999997 块长度为 100 的木板。当然,你也可以只使用 100000001 块长度为 100 的木板来得到一个大于 $L$ 的总长度,但这是不允许的。
在第二个样例中,只能得到偶数长度。