涛酱和策策在训练之余会玩一些小游戏来放松头脑,今天他们又在玩小游戏,wzc在边上围观并记录了他们的游戏。
涛酱为策策准备了一个n*m的棋盘,他限制了其中某些格子是不可放置的。
策策的任务是用1*2的长方形填满这个棋盘除了不可放置的格子外的所有格子。(长方形水平或竖直放置均可,但相互之间不可重叠,且不能放在不可放置的格子上)
现在策策想知道他有多少种可行的摆放方案。
输入描述:
输入包含多组测试数据。(每个测试点最多10组)
每组数据的第一行包含三个整数n,m,k,分别代表棋盘的长宽,以及棋盘上多少个格子被限制了不可放置。(1<=n,m<=11,0<=k<=n*m)
接下来k行,每行两个整数a,b。代表第a行第b列的格子被限制了不可放置。(1<=a<=n,1<=b<=m)
当输入的n=0,m=0,k=0表示输入终止,且该组数据无需处理。
输出描述:
每组测试数据输出一个整数代表可行的摆放方案数量,每组样例输出占一行。
示例1
输入
复制
3 3 1
2 2
1 2 0
1 3 0
4 11 0
10 11 0
5 5 3
1 3
2 1
3 2
5 5 3
1 3
2 3
3 1
0 0 0
输出
复制
2
1
0
51205
3852472573499
0
80
备注: