Henry 正在分析一个高负载的数据库迁移脚本。该脚本由 $n$ 个事务组成。第 $i$ 个事务包含 $a_i$ 个查询。Henry 希望将该脚本拆分为尽可能少数量的批次(batch),其中每个批次包含一个事务或一段连续的事务,且每个批次中的查询总数不超过 $t$。
不幸的是,Henry 不知道生产数据库中 $t$ 的确切值,因此他打算针对 $q$ 个可能的 $t$ 值($t_1, t_2, \dots, t_q$)分别估算最少的批次数。请帮助 Henry 计算出每个 $t$ 值对应的批次数。
输入格式
第一行包含一个整数 $n$ — 迁移脚本中的事务数量($1 \le n \le 200\,000$)。
第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$ — 每个事务中的查询数量($1 \le a_i; \sum a_i \le 10^6$)。
第三行包含一个整数 $q$ — 询问的数量($1 \le q \le 100\,000$)。
第四行包含 $q$ 个整数 $t_1, t_2, \dots, t_q$($1 \le t_i \le \sum a_i$)。
输出格式
输出 $q$ 行。第 $i$ 行应包含在每个批次最多有 $t_i$ 个查询的情况下,最少可能的批次数。如果对于某个 $t_i$,无法将脚本拆分为符合要求的批次,则输出 “Impossible”。
请记住,你不能重新排列事务,只能将连续的事务分到同一个批次中。
样例
输入样例 1
6 4 2 3 1 3 4 8 10 2 5 4 6 7 8 8
输出样例 1
2 Impossible 4 5 4 3 3 3