#include <bits/stdc++.h>
using namespace std ;
int a, b ;
int total ;
int Map[ 20 ][ 20 ] ;
int vis[ 20 ][ 20 ] ;
int n ;
int dx[ 2 ] = { 0 , 1 } ;
int dy[ 2 ] = { 1 , 0 } ;
void dfs ( int x , int y ) {
if ( x == a && y == b ) {
total++ ;
return ;
}
for ( int i = 0 ; i < 4 ; i++ ) {
int newx = x + dx[ i ] ;
int newy = y + dy[ i ] ;
if ( 1 <= newx && newx <= a && 1 <= newy && newy <= b && Map[ newx ][ newy ] != 0 && vis[ newx ][ newy ] != 1 ) {
vis[ newx ][ newy ] = 1 ;
dfs ( newx , newy ) ;
vis[ newx ][ newy ] = 0 ;
}
}
}
int main() {
cin >> a >> b ;
for ( int i = 1 ; i <= a ; i++ )
for ( int k = 1 ; k <= b ; k++ )
Map[ i ][ k ] = 1 ;
cin >> n ;
int x1 , y1 ;
for ( int i = 1 ; i <= n ; i++ ) {
cin >> x1 >> y1 ;
Map[ x1 ][ y1 ] = 0 ;
}
vis[ 1 ][ 1 ] = 1 ;
dfs( 1 , 1 ) ;
cout << total ;
return 0 ;
}