给定两个 $n$ 个元素的排列 $p_1, p_2, \dots, p_n$ 和 $q_1, q_2, \dots, q_n$,以及一个整数 $k$。
你需要找到两个整数数组 $a$ 和 $b$,满足以下性质:
- 数组中的元素必须是整数,且满足 $-n \le a_i, b_i \le n$。
- 排列诱导了以下顺序:$a_{p_1} \le a_{p_2} \le \dots \le a_{p_n}$ 且 $b_{q_1} \le b_{q_2} \le \dots \le b_{q_n}$。
- 若 $i < j$ 且 $a_i + b_j < 0$,则称数对 $(i, j)$ 是“酷”的。酷对的数量必须恰好为 $k$。
输入格式
第一行包含两个整数 $n$ 和 $k$:元素个数以及要求的酷对数量 ($1 \le n \le 300\,000, 0 \le k \le \frac{n(n-1)}{2}$)。
第二行包含 $n$ 个空格分隔的整数:排列 $p_1, p_2, \dots, p_n$。
第三行包含 $n$ 个空格分隔的整数:排列 $q_1, q_2, \dots, q_n$。
保证 $1$ 到 $n$ 的每个整数在每个排列中恰好出现一次。
输出格式
如果不存在满足酷对数量为 $k$ 的整数数组对,则在单行内输出 “No”。
否则,第一行输出 “Yes”,接下来的两行分别输出数组 $a$ 和 $b$。数组元素之间用空格分隔。
样例
输入 1
5 3 3 5 1 2 4 1 2 3 4 5
输出 1
Yes 2 3 -1 5 1 -5 -3 -2 -2 0