划分
题号:NC207748
时间限制:C/C++/Rust/Pascal 3秒,其他语言6秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

tacmon有两个长度都为的序列
他现在要用这两个序列构造另一个长度为的序列,满足:

  • 序列的第个数,只能从中选取。
  • 为序列中元素被选取的次数,为序列中元素被选取的次数,则
  • 该序列是一个单调上升的序列,不要求严格单调上升。

请你求出有多少种构造方案,答案对取模。

输入描述:

第一行一个整数N。

第二行有2N个整数,表示

第三行有2N个整数,表示

输出描述:

输出一行一个整数,表示答案对998244353取模的结果。
示例1

输入

复制
3
1 2 3 4 5 6
2 3 4 5 6 7

输出

复制
20

备注:

对于所有数据,,
对于15分的数据:
对于40分的数据:
另有20分的数据:保证最多只有一种合法的C序列