#P29. 找行李

找行李

题目描述

Mandy 和 brz 下了飞机,准备去拿行李,看到行李传送带前站满了人,他们俩很苦恼,想知道什么时候才有人离开给自己让个位置。

Mandy 灵机一动,突然想到了一道题:

假设传送带不是环形的而是长条形状的,可以用坐标轴表示,有 n n 个行李,在传送带上的位置分别为 ai a_i ,有 m m 个人站在传送带前,位置分别为 bi b_i ,传送带向坐标轴正方向每秒移动一个单位,即每秒会让所有行李 ai=ai+1 a_i = a_i + 1 。人和行李均从 1 开始编号。

显然对于一个人来说,左边的行李都是看过了的,没有自己的行李,自己的行李只可能在其左边,也可能没有。(如果坐标 i<j i < j ,认为 i i j j 左边)并且不会有一个行李同时属于两个人,但可能不属于这 m m 个人中的任何人。一个人至多只有一个行李。

现在 Mandy 问 brz,在所有情况下,最早有人拿到自己的行李的时刻是多少呢?brz 更苦恼了,只好求助于你,你不需要输出所有情况下的答案,你只需要求出他们的和即可。当然,每个人的左边都没有自己的行李的情况不需要考虑。两种情况下当且仅当在一种情况下某个人有行李,而在另一种情况下没有、或存在某个人在两种情况中的行李编号不同。

输入格式

第一行两个整数 n,m n, m (1n,m500 1 \leq n, m \leq 500 )。

第二行 n n 个整数 a1,a2,,an a_1, a_2, \cdots, a_n (1ai500 1 \leq a_i \leq 500 )。

第三行 m m 个整数 b1,b2,,bm b_1, b_2, \cdots, b_m (1bi500 1 \leq b_i \leq 500 )。

我们认为人和行李是忽略体积的质点,所以不保证 ai a_i 之间两两互不相等,bi b_i 也是。

输出格式

输出一行一个整数表示答案。由于答案可能很大,你只需要输出对 998 244 353 取模后的结果。

2 2
1 2
3 4
11
5 5
1 2 3 4 5
2 3 4 5 6
272