SP23969 JARJAR - Helping Jar Jar Binks

题目描述

Jar Jar Binks 接到了一个任务: 有 $N$ 个飞船零件,每个零件的重量为 $W_i$ 千克。给定一个总重量 $W$,他需要找出有多少种组合方式,可以用这些零件恰好组合成重量为 $W$ 千克的飞船。如果组合成的方法存在,他需要展示所有可能的方案。 众所周知,Jar Jar Binks 因笨手笨脚而闻名,因此你需要帮助他。请编写一个程序来解决这个问题!

输入格式

输入包含多组数据,每组以两个整数 $N, Q$ 开始,分别表示飞船零件的数量和需要回答的询问数。其中 $1 \le N \le 60$,$0 \le Q \le 10000$。 接下来一行,有 $N$ 个正整数,表示每个飞船零件的重量($1 \le W_i \le 1000$)。 接下来的 $Q$ 行,每行包含一个整数 $W$,表示需要组合成的飞船总重量(这个整数不一定是正数)。 输入的最后一组以 $N = 0$ 和 $Q = 0$ 结束,这组数据不需要处理。

输出格式

对于每一个查询,输出一行,包含一个按升序排列的整数序列,这些整数表示可以用来组合成重量为 $W$ 的飞船的零件数量。 如果无法组合出重量为 $W$ 的飞船,则输出 `That's impossible!`。

说明/提示

- 零件数量 $1 \le N \le 60$ - 询问次数 $0 \le Q \le 10000$ - 每个零件的重量 $1 \le W_i \le 1000$ **本翻译由 AI 自动生成**