ICPC 经理计划开展一个为期 $n$ 天的新项目。该项目需要 $m$ 名编号为 $1$ 到 $m$ 的人员参与。第 $j$ 天($1 \le j \le n$)需要 $d_j$ 名工作人员,且每名人员 $i$($1 \le i \le m$)需要工作 $w_i$ 天。
为了提高项目执行效率,必须满足以下两个条件: (1) 每名人员在工作时,必须连续工作 $w$ 天; (2) 每名人员在休息至少 $h$ 天后才能再次工作。
ICPC 经理希望找到一个工作计划,为所有人员分配工作日,使得每名人员 $i$($1 \le i \le m$)的总工作天数等于 $w_i$,且每天($1 \le j \le n$)工作的人数等于 $d_j$,同时满足上述两个条件。
例如,假设项目持续 $n = 9$ 天,有 $m = 4$ 名人员参与。设 $w = 2$ 且 $h = 1$。假设 $(w_1, w_2, w_3, w_4) = (4, 4, 6, 2)$ 且 $(d_1, d_2, d_3, d_4, d_5, d_6, d_7, d_8, d_9) = (1, 3, 2, 1, 2, 1, 1, 3, 2)$。下表展示了一个可行解,其中第 $i$ 行对应人员 $i$,第 $j$ 列对应第 $j$ 天。如果人员 $i$ 在第 $j$ 天工作,则表中第 $i$ 行第 $j$ 列的值为 $1$,否则为 $0$。
工作计划示例表
给定 $m, n, w, h$,$w_i$($1 \le i \le m$)为 $w$ 的倍数,以及 $d_j$($1 \le j \le n$),编写程序寻找一个可行的工作计划。
输入格式
程序从标准输入读取数据。输入的第一行包含四个整数 $m, n, w, h$($1 \le m \le 2,000, 1 \le n \le 2,000, 1 \le w, h \le n$)。接下来的行包含 $m$ 个整数,其中第 $i$ 个($1 \le i \le m$)整数表示 $w_i$($1 \le w_i \le n$),且 $w_i$ 是 $w$ 的倍数。下一行包含 $n$ 个整数,其中第 $j$ 个($1 \le j \le n$)整数表示 $d_j$($0 \le d_j \le m$)。
输出格式
程序将结果写入标准输出。如果存在可行的工作计划,第一行输出 $1$,随后输出 $m$ 行,其中第 $i$ 行($1 \le i \le m$)应包含 $w_i/w$ 个整数。这些整数构成了人员 $i$ 在可行计划中开始工作的起始天数,并按递增顺序排列。如果不存在可行的工作计划,则仅在第一行输出 $-1$。第一个样例对应于上表中的示例。
样例
输入格式 1
4 9 2 1 4 4 6 2 1 3 2 1 2 1 1 3 2
输出格式 1
1 1 8 2 7 2 5 8 4