我们称数列 $C$ 的一个区间为该数列的任意非空连续子序列。特别地,这意味着长度为 $k$ 的数列拥有 $\frac{k(k+1)}{2}$ 个区间,因为每个区间由其起始位置和结束位置确定。
对于给定的整数数列,我们将其“稳定性”定义为其中最长严格单调区间的长度。更准确地说,数列 $[c_1, c_2, \dots, c_k]$ 的稳定性是满足以下条件的最大整数 $s$:存在一个下标 $i$ ($1 \le i \le k - s + 1$),使得 $c_i < c_{i+1} < \dots < c_{i+s-1}$ 或 $c_i > c_{i+1} > \dots > c_{i+s-1}$。例如,数列 $[8, 6, 1, 3, 5, 7, 4, 2]$ 的稳定性为 $4$,因为其中存在严格单调区间 $[1, 3, 5, 7]$,且不存在更长的此类区间。
两个数列 $A$ 和 $B$ 的“交织”(splot)是指任何长度为 $|A| + |B|$ 的数列,该数列包含一个(不一定连续的)子序列等于 $A$,且所有不在该子序列中的元素按顺序构成了数列 $B$。例如,数列 $[1, 2, 3]$ 和 $[4, 5]$ 的交织包括 $[1, 4, 2, 5, 3]$、$[4, 5, 1, 2, 3]$ 和 $[4, 1, 5, 2, 3]$,但不包括 $[1, 2, 3, 4, 3]$ 和 $[1, 2, 3, 5, 4]$。
最后,对于整数数列 $A$ 和 $B$,我们用 $f(A, B)$ 表示它们交织后的最小可能稳定性。
给定两个长度分别为 $n$ 和 $m$ 的整数数列 $A$ 和 $B$,你的任务是对于从 $1$ 到 $n + m$ 的每个整数 $x$,计算满足 $A'$ 是 $A$ 的区间、$B'$ 是 $B$ 的区间且 $f(A', B') = x$ 的数对 $(A', B')$ 的数量。由于这些数字可能非常大,你只需输出它们对 $10^9 + 7$ 取模后的结果。
你可以假设数列 $A$ 和 $B$ 中的所有元素互不相同。
输入格式
第一行包含两个整数 $n$ 和 $m$ ($1 \le n, m \le 300\,000$),分别表示数列 $A$ 和 $B$ 的长度。
第二行包含 $n$ 个整数 $A_1, A_2, \dots, A_n$ ($1 \le A_i \le n + m$),即数列 $A$。
第三行包含 $m$ 个整数 $B_1, B_2, \dots, B_m$ ($1 \le B_i \le n + m$),即数列 $B$。
保证数列 $A$ 和 $B$ 中的所有元素互不相同。换句话说,数列 $A$ 和 $B$ 的拼接构成了 $1$ 到 $n + m$ 的一个排列。
输出格式
在标准输出的一行中输出 $n + m$ 个整数,用空格分隔;其中第 $i$ 个数应等于满足 $A'$ 是 $A$ 的区间、$B'$ 是 $B$ 的区间且 $f(A', B') = i$ 的数对 $(A', B')$ 的数量对 $10^9 + 7$ 取模后的结果。
样例
输入 1
5 3 1 2 5 7 4 8 3 6
输出 1
0 84 6 0 0 0 0 0
说明 1
对于作为完整数列的区间,有 $f([1, 2, 5, 7, 4], [8, 3, 6]) = 2$,且稳定性为 $2$ 的交织的一个例子是 $[1, 8, 2, 5, 3, 7, 4, 6]$。
当我们考虑区间 $[1, 2, 5, 7]$ 和 $[3]$ 时,得到 $f([1, 2, 5, 7], [3]) = 3$,且稳定性为 $3$ 的交织的一个例子是 $[1, 2, 5, 3, 7]$。可以证明,数对 $([1, 2, 5, 7], [3])$ 无法交织出稳定性小于 $3$ 的数列。
对于区间 $[4]$ 和 $[6]$,有 $f([4], [6]) = 2$,其所有可能的交织 $[4, 6]$ 和 $[6, 4]$ 都是符合条件的例子。
该样例中的每一对区间都可以交织成稳定性不超过 $3$ 的数列。因此,对于 $x \ge 4$ 的答案均为 $0$。