Lazy Batyr 一年四季都爱吃西瓜。此外,他非常善于交际且友好。因此,他有 $K$ 个可靠的朋友也就不足为奇了。
目前,Batyr 有 $n$ 个西瓜,第 $i$ 个西瓜的重量为 $a_i$。Batyr 厌倦了独自吃西瓜,所以他决定把所有的西瓜分给他的 $K$ 个朋友,使得每个西瓜恰好分给其中一个朋友。
Batyr 认为如果满足以下条件,西瓜的分配就是公平的:
- 每个朋友至少收到一个西瓜;
- 对于每个朋友,他们收到的西瓜重量之和不超过分给其他朋友的西瓜重量之和。
当然,Batyr 可能无法按照他想要的方式分配现有的西瓜。在这种情况下,他可以从经验丰富的卖家 Abdou 那里购买几个(可能为零)西瓜。Abdou 有 $m$ 个西瓜,第 $i$ 个西瓜的重量为 $b_i$。
请告诉 Batyr 他最少需要从 Abdou 那里购买多少个西瓜才能实现公平分配,并输出具体的分配方案。如果不存在公平分配,则输出 $-1$。
输入格式
第一行包含三个整数 $n, m$ 和 $K$ ($3 \le n \le 5 \cdot 10^5, 0 \le m \le 5 \cdot 10^5, 3 \le K \le 5 \cdot 10^5$),分别表示 Batyr 拥有的西瓜数量、Abdou 拥有的西瓜数量以及 Batyr 的朋友数量。
第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$ ($1 \le a_i \le 10^9$),表示 Batyr 的西瓜重量。
第三行包含 $m$ 个整数 $b_1, b_2, \dots, b_m$ ($1 \le b_i \le 10^9$),表示 Abdou 的西瓜重量。
输出格式
第一行包含一个整数,表示购买西瓜的最少数量,如果不存在公平分配,则输出 $-1$。如果存在答案,则额外输出两行(注意第 3 个子任务不需要打印这两行):
第二行包含 $n$ 个整数 $c_1, c_2, \dots, c_n$ ($1 \le c_i \le K$),其中第 $i$ 个数字 $c_i$ 表示第 $i$ 个 Batyr 的西瓜应该分给哪位朋友(朋友编号从 $1$ 到 $K$)。
第三行包含 $m$ 个整数 $d_1, d_2, \dots, d_m$ ($0 \le d_i \le K$),其中第 $i$ 个数字 $d_i$ 的含义如下: 如果 $d_i = 0$,则不需要购买 Abdou 的第 $i$ 个西瓜; 否则,$d_i$ 表示如果购买了 Abdou 的第 $i$ 个西瓜,应将其分给哪位朋友。
如果有多种合适的答案,输出任意一种即可。
子任务
| 子任务 | 附加约束 | 分值 |
|---|---|---|
| 0 | 样例 | 0 |
| 1 | $m = 0, a_i = a_{i+1} (1 \le i < n)$ | 9 |
| 2 | $a_i = a_{i+1} (1 \le i < n), b_j = b_{j+1} (1 \le j < m)$ | 19 |
| 3 | 不需要打印西瓜的分配方案 | 24 |
| 4 | $m = 0$ | 20 |
| 5 | $b_i = 1 (1 \le i \le m)$ | 10 |
| 6 | — | 18 |
样例
样例 1
输入
3 2 4 3 2 3 10 9
输出
2 4 3 3 1 2
样例 2
输入
5 2 4 4 9 3 52 7 35 5
输出
1 2 3 1 1 4 4 0
样例 3
输入
4 1 3 1 2 4 10 2
输出
-1
说明
在第一个样例中,Batyr 将不得不购买 Abdou 的两个西瓜。然后西瓜可以这样分配:朋友们得到的西瓜重量之和分别为 $[10, 9, 5, 3]$,这被认为是公平的分配。
在第二个样例中,只需购买 Abdou 的第一个西瓜。然后西瓜可以这样分配:朋友们得到的西瓜重量之和分别为 $[55, 4, 9, 42]$,这被认为是公平的分配。
在第三个样例中,可以证明不存在公平的分配。