有 n 个任务,你每一天都可以选择其中的一个任务完成或不选。当你完成了第 i 个任务,你将获得 ai 元。但是如果你今天完成了一个任务,那么你之后 k 天内都不能再完成这个任务。
给出两个数 c 和 d,要求求出在 d 天内可以收集至少 c 元的最大的 k 值。
如果不存在这样的 k,输出 Impossible(不可能)。
如果 k 可以无限大,输出 Infinity(无限)。
否则输出最大的 k 值。
输入包含多个测试用例。第一行包含一个整数 t (1≤t≤104) — 测试用例的数量。接下来是测试用例的描述。
每个测试用例的第一行包含三个整数 n,c,d (2≤n≤2⋅105; 1≤c≤1016; 1≤d≤2⋅105) — 任务的数量、你需要的金币数以及天数。
每个测试用例的第二行包含 n 个整数 a1,a2,…,an (1≤ai≤109) — 完成任务的奖励。
所有测试用例中的 n 之和不超过 2⋅105,d 之和也不超过 2⋅105。
对于每个测试用例,输出以下之一:
请注意,检查器对大小写敏感,你应该精确地输出给定的字符串。
6
2 5 4
1 2
2 20 10
100 10
3 100 3
7 2 6
4 20 3
4 5 6 7
4 100000000000 2022
8217734 927368 26389746 627896974
2 20 4
5 1
2
Infinity
Impossible
1
12
0
在第一个测试用例中,一个在 4 天内赚取 5 元并且 k=2 的方法如下:
总共,我们赚取了 2+1+2=5 元。在第二个测试用例中,我们可以在第一天通过完成第一个任务赚取 100 元,所以 k 的值可以任意大,因为我们不需要再完成其他任务。
在第三个测试用例中,无论我们怎么做,我们都不能在 3 天内赚取 100 元。