奥丁有一些神奇的戒指,它们可以复制自身。每个“$X$天戒指”在诞生后的每 $X$ 天会额外产生一个 $X$ 天戒指。这些戒指共有六种类型:1天、2天,一直到6天。
例如,一个在第 0 天诞生的 3 天戒指在第 3 天之前什么都不会做,到了第 3 天,它会产生另一个 3 天戒指。然后,在第 6 天,这两个戒指中的每一个都会产生另一个 3 天戒指,以此类推。
你知道奥丁在第 0 天之前没有任何戒指。在第 0 天,一些戒指诞生了。在第 0 天结束时,对于每个 $1 \le i \le 6$,奥丁拥有 $R_i$ 个 $i$ 天戒指。你知道对于所有 $i$,都有 $0 \le R_i \le 100$,且至少有一个 $R_i$ 的值大于 0。
幸运的是,你还可以使用知识之井。每次使用它,你都可以获知奥丁在第 1 天到第 500 天(包含边界)之间某一天结束时拥有的戒指总数。知识之井给出的答案是对 $2^{63}$ 取模的结果,因为即使是它也只能容纳这么多信息!此外,你最多只能使用该井 $W$ 次。
你的目标是确定奥丁在第 0 天结束时每种类型的戒指各有多少个——也就是说,你必须找出每一个 $R_i$ 的值。
输入输出格式
这是一个交互式问题。请确保你已阅读 FAQ 中的“交互式问题”部分。
最初,你的程序应读取一行,包含两个整数 $T$(测试用例数量)和 $W$(每个测试用例允许使用知识之井的次数)。然后,你需要处理 $T$ 个测试用例。
在每个测试用例中,你的程序与裁判进行最多 $W + 1$ 次交互。你可以进行最多 $W$ 次以下形式的交互:
- 你的程序输出一行,包含一个 $1$ 到 $500$ 之间的整数 $D$。
- 裁判返回一行,包含一个整数:奥丁在第 $D$ 天结束时拥有的戒指总数,对 $2^{63}$ 取模。如果你发送了无效数据(例如超出范围的数字或格式错误的行),裁判将返回 $-1$。
在进行 0 到 $W$ 次上述交互后,你必须进行最后一次以下形式的交互:
- 你的程序输出一行,包含六个整数 $R_1, R_2, R_3, R_4, R_5, R_6$,其中 $R_i$ 表示奥丁在第 0 天结束时拥有的 $i$ 天戒指的数量。
- 裁判返回一行,包含一个整数:如果你的答案正确,则返回 $1$;如果不正确(或你提供了格式错误的行),则返回 $-1$。
在裁判向你的输入流发送 $-1$ 后(无论是由于数据无效还是答案错误),它将不再发送任何其他输出。如果你的程序在收到 $-1$ 后继续等待裁判,程序将会超时,导致“超出时间限制”(Time Limit Exceeded)错误。请注意,你有责任让你的程序及时退出,以接收“答案错误”(Wrong Answer)判决,而不是“超出时间限制”。
通常情况下,如果超过内存限制或程序出现运行时错误,你将收到相应的判决。
样例
输入格式 1
50 6 15 7 -1
输出格式 1
3 1 1 1 1 3 0 0
说明
请注意,即使猜测与我们从裁判那里收到的信息一致,我们仍然是错误的,因为我们没有找到正确的值。