#joi2007yof. [joi2007yo_f]通学経路

[joi2007yo_f]通学経路

问题

太郎住在JOI市,该市沿南北方向有 aa 条笔直的道路,沿东西方向有 bb 条笔直的道路,形成了一个棋盘格子。

南北方向的 aa 条道路从西到东编号为 1,2,ldots,a1, 2, \\ldots, a。东西方向的 bb 条道路从南到北编号为 1,2,ldots,b1, 2, \\ldots, b。第 ii 条南北方向的道路和第 jj 条东西方向的道路交叉的交叉点记作 (i,j)(i, j)

太郎住在交叉点 (1,11, 1) 附近,骑自行车上 JOI 高中。自行车只能沿着道路移动。为了缩短通学时间,太郎只向东或向北移动。

现在,JOI 市正在 nn 个交叉点 (x1,y1),(x2,y2),ldots,(xn,yn)(x_1, y_1), (x_2, y_2), \\ldots, (x_n, y_n) 进行施工。太郎不能穿过施工中的交叉点。

太郎要从交叉点 (1,1)(1, 1) 到交叉点 (a,b)(a, b),避开施工中的交叉点,只能向东或向北移动,有多少种通学方法?请编写程序计算太郎的通学路线数量 mm


输入

输入的第一行包含两个整数 a,ba, b,以空格分隔。它们表示南北方向和东西方向的道路数。a,ba, b 满足 1leqqa,bleqq161 \\leqq a, b \\leqq 16

第二行包含一个整数 nn,表示施工中的交叉点数。nn 满足 1leqqnleqq401 \\leqq n \\leqq 40

接下来的 nn 行(第三行到第 n+2n + 2 行)描述了施工中的交叉点的位置。第 i+2i + 2 行包含用空格分隔的整数 xi,yix_i, y_i,表示交叉点 (xi,yi)(x_i, y_i) 正在施工中。xi,yix_i, y_i 满足 1leqqxi,yileqq161 \\leqq x_i, y_i \\leqq 16

输出

输出只包含一个整数 mm,表示太郎的通学路线数量。


示例 1

5 4
3
2 2
2 3
4 2

输出示例 1

5

下图显示了当 a=5,b=4,n=3a = 5, b = 4, n = 3,施工中的交叉点为 (2,2),(2,3),(4,2)(2, 2), (2, 3), (4, 2) 的情况。

route-fig1.png

在这种情况下,有 m=5m = 5 种通学路线。以下是这 5 条通学路线的图示。

route-fig2.png