import java.util.Scanner;
public class Main{
private static int[][] map;
private static int[][] dir=new int[][]{{1,0},{0,1}};
private static int[][] mark;
private static int a;
private static int b;
private static int n;
private static int cnt;
public static void main(String[] agrs){
Scanner sc=new Scanner(System.in);
a=sc.nextInt();
b=sc.nextInt();
n=sc.nextInt();
map=new int[17][17];
mark=new int[17][17];
for(int i=0;i<n;i++){
int x=sc.nextInt();
int y=sc.nextInt();
map[x][y]=1;
}
dfs(1,1);
System.out.println(cnt);
}
public static void dfs(int x,int y){
mark[x][y]=1;
if(x==a&&y==b)
cnt++;
else{
for(int i=0;i<2;i++){
int tox=x+dir[i][0];
int toy=y+dir[i][1];
if(tox>a||toy>b||map[tox][toy]==1)
continue;
else
dfs(tox,toy);
mark[tox][toy]=0;
}
}
}
}