AT_abc238_f [ABC238F] Two Exams
Description
[problemUrl]: https://atcoder.jp/contests/abc238/tasks/abc238_f
高橋王国にて、 $ 1 $ から $ N $ までの番号のついた $ N $ 人の国民が競技プログラミングの試験に参加しました。
試験は $ 2 $ 回からなり、人 $ i $ は $ 1 $ 回目の試験で $ P_i $ 位、 $ 2 $ 回目の試験で $ Q_i $ 位となりました。
なお、どちらの試験においても、複数人が同じ順位になることはありませんでした。すなわち、順位を表す数列 $ P,Q $ はそれぞれ $ (1,2,...,N) $ の順列です。
高橋王国の大統領であるいろはちゃんは、この試験の結果に基づいて、 $ N $ 人の中から競技プログラミングの世界大会に出場する $ K $ 人の代表を決めることになりました。
代表を決めるにあたって、以下が成立していなければなりません。
- 人 $ x $ が代表であり、人 $ y $ が代表でないような人の組 $ (x,y) $ であって、 $ P_x\ >\ P_y $ かつ $ Q_x\ >\ Q_y $ であるようなものが存在してはならない。
- 言い換えると、 $ 2 $ 回の試験の双方で人 $ y $ が人 $ x $ よりも小さい順位を取っているにも拘らず、人 $ x $ が代表で人 $ y $ が代表でないということがあってはならない。
いろはちゃんは、ひとまず上記の条件を満たす代表の選び方の数を知りたいので、この数を求めてください。
ただし、この数は非常に大きくなる場合もあるので、 $ 998244353 $ で割った余りを出力してください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ K $ $ P_1 $ $ P_2 $ $ \dots $ $ P_N $ $ Q_1 $ $ Q_2 $ $ \dots $ $ Q_N $
Output Format
答えを整数として出力せよ。
Explanation/Hint
### 制約
- 入力は全て整数
- $ 1\ \le\ N\ \le\ 300 $
- $ 1\ \le\ K\ \le\ N $
- $ P,Q $ は $ (1,2,...,N) $ の順列である。
### Sample Explanation 1
\- 人 $ 1 $ と人 $ 2 $ を代表にすることは問題ありません。 - 人 $ 1 $ と人 $ 3 $ を代表にすると、双方の試験で人 $ 4 $ が人 $ 3 $ よりも小さい順位を取っているため、 $ (x,y)=(3,4) $ に対して問題文中の条件に違反します。 - 人 $ 1 $ と人 $ 4 $ を代表にすることは問題ありません。 - 人 $ 2 $ と人 $ 3 $ を代表にすると、 $ (x,y)=(3,1) $ に対して問題文中の条件に違反します。 - 人 $ 2 $ と人 $ 4 $ を代表にすることは問題ありません。 - 人 $ 3 $ と人 $ 4 $ を代表にすると、 $ (x,y)=(3,1) $ に対して問題文中の条件に違反します。 結局、求める答えは $ 3 $ 通りです。
### Sample Explanation 2
$ 33 $ 人から $ 16 $ 人を選ぶ $ \binom{33}{16}\ =\ 1166803110 $ 通りの全てにおいて、問題文中の条件を満たします。 よって、 $ 1166803110 $ を $ 998244353 $ で割った余りである $ 168558757 $ を出力することとなります。