atcoder#ABC217F. [ABC217F] Make Pair

[ABC217F] Make Pair

配点 : 500500

問題文

2N2N 人の生徒が一列に並んでおり、左から順に生徒 11 , 生徒 22 , \ldots , 生徒 2N2N と番号が付いています。 2N2N 人の生徒はどの 22 人も互いに仲が良いか悪いかのどちらかであり、 具体的には 1iM1\leq i\leq M について生徒 AiA_i と生徒 BiB_i の仲が良く、これら以外のどの 22 人も仲が悪いです。

先生は以下の操作を NN 回繰り返して、 22 人組のペアを NN 組作ることにしました。

  • 隣り合う 22 人であって仲が良いような 22 人をペアとして選び、列から抜く。
  • 抜けた 22 人が列の端でなかったならば、その後、列を詰める。すなわち、抜けた 22 人の左右にいた 22 人が新しく隣り合う。

このとき、 NN 回の操作方法としてあり得るものの数を 998244353998244353 で割った余りを求めてください。 ただし NN 回の操作方法が異なるとは、ある 1iN1\leq i\leq N が存在して、 ii 回目の操作で 選ばれた 22 人組がペアとして異なることをいいます。

制約

  • 1N2001 \leq N \leq 200
  • 0MN(2N1)0 \leq M \leq N(2N-1)
  • 1Ai<Bi2N1 \leq A_i < B_i \leq 2N
  • (Ai,Bi)(A_i, B_i) はすべて異なる。
  • 入力は全て整数である。

入力

入力は以下の形式で標準入力から与えられる。

NN MM

A1A_1 B1B_1

A2A_2 B2B_2

\vdots

AMA_M BMB_M

出力

操作方法としてあり得るものの数を 998244353998244353 で割った余りを出力せよ。

2 3
1 2
1 4
2 3
1

11 度目の操作で生徒 22 と生徒 33 を選び、 22 度目の操作で生徒 11 と生徒 44 を選ぶのが 唯一の操作方法です。 11 度目の操作で生徒 11 と生徒 22 を選ぶと、 生徒 33 と生徒 44 が残りますが、この 22 人は仲が悪いため 22 度目の操作でペアにすることができません。 よって、 11 を出力します。

2 2
1 2
3 4
2

11 度目の操作で生徒 11 と生徒 22 を選び、 22 度目の操作で生徒 33 と生徒 44 を選ぶのが 11 通り、 11 度目の操作で生徒 33 と生徒 44 を選び、 22 度目の操作で生徒 11 と生徒 22 を選ぶのが 11 通りであわせて 22 通りあります。 この 22 つが区別されることに注意してください。

2 2
1 3
2 4
0

11 度目の操作で選べるペアが無いため条件をみたす操作方法は無く、 00 を出力します。