#abc217f. [abc217_f]Make Pair

[abc217_f]Make Pair

题目描述

2N2N 个学生站成一排,编号从 112N2N,从左到右。对于所有的两个学生对,他们之间有好或坏的关系。具体来说,对于每个 1iM1\leq i\leq M,学生 AiA_i 和学生 BiB_i 之间是好关系;对于其他的两个学生对,他们之间是坏关系。

老师打算进行以下操作 NN 次,组成 NN 对学生。

  • 选择两个相邻的好关系的学生,将他们配对,并将他们从队列中删除。
  • 如果被删除的学生不在队列的两端,则将其左右两边的学生靠拢,使其相邻。

计算完成这个操作 NN 次的可能方法数,模 998244353998244353。当存在 1iN1\leq i\leq N,使得在两种方法中第 ii 次操作选择的学生对有所不同时,认为这两种方法是不同的。

约束条件

  • 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

示例输入1

2 3
1 2
1 4
2 3

示例输出1

1

完成操作的唯一方法是在第一次选择学生 2233,在第二次选择学生 1144。如果在第一次操作中选择学生 1122,那么剩下的学生是 3344,他们之间是坏关系,因此无法在第二次操作中配对。
所以,应该输出 11

示例输入2

2 2
1 2
3 4

示例输出2

2

有两种完成操作的方法:一种是在第一次操作中选择学生 1122,在第二次操作中选择学生 3344;另一种是在第一次操作中选择学生 3344,在第二次操作中选择学生 1122。注意这两种方法是不同的。

示例输入3

2 2
1 3
2 4

示例输出3

0

由于无法在第一次操作中选择学生对,所以无法完成操作,应该输出 00