// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNext()) { // 
            int n = in.nextInt();
            int m = in.nextInt();
            int k = in.nextInt();
            //创建草地
            int[][] glass = new int[n+1][m+1];
            //将蘑菇种到草地上
            for(int i = 0; i < k; i++) {
                int x = in.nextInt();
                int y = in.nextInt();
                glass[x][y] = 1;
            }           
            //A在(1,1)开始 多加一行,一列
            //设置A到B概率
            double[][] prob = new double[n+1][m+1];
            prob[1][1] = 1.0;
            for(int i = 1; i <= n; i++) {
                for(int j = 1; j <= m; j++) {
                    if(!(i == 1 && j == 1)) {
                     //只会走(i,j+1)或(i+1,j)只往右边走,或下面走
                     //当前的的概率 = 左边走过来的 0.5+ 上边走过来的 0.5
                     //在边界上,则只有一种选择 1.0
                        prob[i][j] = prob[i-1][j] * (j==m?1.0:0.5) + 
                        prob[i][j-1] * (i == n?1.0:0.5);
                    }
                    //在蘑菇上的概率 0.0
                    if(glass[i][j] == 1) {
                        prob[i][j] = 0.0;
                    }
                }

            }
            System.out.printf("%.2f\n",prob[n][m]);
        }
    }
}