#62. 格路计数问题

格路计数问题

题目背景

Counting is fun!

题目描述

坎格鲁斯普雷给了你一个 (n+1)×(m+1)(n+1) \times (m+1) 的网格,横坐标(坐标前面的那个数)的范围为 [0,n][0,n] ,纵坐标(坐标后面的那个数)的范围为 [0,m][0,m]

在这个网格上有一个小机器人,初始在 (0,0)(0,0) 这个点上,小机器人只能往横坐标增大或纵坐标增大的方向走,且只能沿着坐标轴的方向移动,一次只能移动一个单位长度。

现在,坎格鲁斯普雷对小机器人发出了指令,要求它按顺序经过他给定的 kk 个点,并最终到达点 (n,m)(n,m)

看着移动的小机器人,你不经好奇:小机器人一共有多少种方法能到达点 (n,m)(n,m) 呢?由于答案可能很大,你只需要输出答案对 998244353998244353 取模后的结果。

输入格式

输入第一行三个整数 nn , mm , kk(0n,m,k2×105)(0 \leq n,m,k \leq 2 \times 10^5)

接下来 kk 行,一行两个整数 xix_i , yiy_i ,表示坎格鲁斯普雷给定的第 ii 个点为 (xi,yi)(x_i,y_i)(0xin,0yim)(0 \leq x_i \leq n,0 \leq y_i \leq m)

输出格式

输出一行一个整数,表示答案。答案需对 998244353998244353 进行取模。

输入输出样例

输入 #1

3 4 2
1 2
2 3

输出 #1

12

输入 #2

0 5 0

输出 #2

1

输入 #3

2 2 2
1 1
0 1

输出 #3

0

说明与提示

对于样例 #1:

到点 (1,2)(1,2) 一共有三种方法:横纵纵、纵横纵、纵纵横。

到点 (2,3)(2,3) 一共有两种方法:纵横、横纵。

到点 (3,4)(3,4) 一共有两种方法:纵横、横纵。

所以一共有 3×2×2=123 \times 2 \times 2=12 种方法。

对于样例 #2:

注意 nn , mm , kk 均可能为 00

对于样例 #3:

注意可能无解,此时应该输出 00