Jaemin喜欢做饭。他想为 $N$ 天制定一些食谱。他按照以下顺序制定食谱:
- 在市场购买食材并放入冰箱。
- 构思食谱。
- 从冰箱中取出食材并做饭。
他可以用这样简单的方式来制定食谱。他希望做出的菜肴尽可能美味。
市场每天都有新鲜的食材。在第 $i$ 天出售的食材具有新鲜度 $F_i$。冰箱中食材的新鲜度每天会减少 $1$。如果冰箱里有食材,在用它们做饭之前,他不会购买更多的食材。
他在第 $i$ 天的厨艺为 $C_i$。他的厨艺每天都在进步,因此对于所有 $i < j$,有 $0 < C_i \le C_j$。如果他从冰箱中取出新鲜度为 $F$ 的食材,并用厨艺 $C$ 进行烹饪,就会做出美味度为 $F \times C$ 的菜肴。当他做饭时,他会邀请非常讲究卫生的朋友 Jaehyun,因此 Jaemin 希望冰箱中的食材新鲜度大于或等于 $L_i$。如果食材不满足要求,Jaemin 那天就不能做饭。Jaehyun 的要求每天都在变化,$N$ 天的要求分别为 $L_1, L_2, \dots, L_N$。
在他做完一道新菜后,他会在第二天去市场购买新食材并再次构思新食谱。每天,他可以去市场购买食材、做饭,或者为了构思食谱而什么都不做(也可以在购买食材的当天进行烹饪)。第一天,冰箱里没有任何食材,他会去市场购买一些食材。在第 $N$ 天,他必须做饭并清空冰箱。让我们求出他所做菜肴的美味度之和的最大值。如果由于 Jaehyun 的特殊要求,导致在第 $N$ 天无法清空冰箱,则输出 "Impossible"(不含引号)。
输入格式
输入共四行。
第一行包含 $N$。($2 \le N \le 250,000$)
第二行包含 $N$ 个空格分隔的整数 $F_1, F_2, \dots, F_N$。($0 < F_i \le 50,000$)
第三行包含 $N$ 个空格分隔的整数 $C_1, C_2, \dots, C_N$。($0 < C_1 \le \dots \le C_N \le 10,000$)
第四行包含 $N$ 个空格分隔的整数 $L_1, L_2, \dots, L_N$。($0 \le L_i \le 50,000$)
输出格式
输出 Jaemin 所做菜肴的美味度之和的最大值。如果无法在第 $N$ 天清空冰箱,则输出 "Impossible"(不含引号)。
样例
输入样例 1
3 10 1 1 1 2 3 1 1 1
输出样例 1
24
输入样例 2
3 10 1 1 1 2 3 10 10 10
输出样例 2
Impossible
输入样例 3
10 3 4 1 5 9 2 6 5 3 5 10 11 12 13 14 15 16 17 18 19 1 4 1 4 2 1 3 5 6 2
输出样例 3
526