# 情報数理科学演習?
# 2014 冬

def heian_kyoWalking()
  gx, gy = gets.split.map(&:to_i) # 秘密の場所の座標
  n = gets.to_i                   # マタタビの区間の数
  matatabiPathes = []

  n.times do
    matatabiPathes << gets.split.map(&:to_i)
  end

  # 平安京の道: 1 ... 通行可能. 0 ... マタタビ.
  # 縦横別の配列を用意。添字は道の出発点の座標。
  heiankyoRow    = Array.new(16).map{ Array.new(15, 1) }
  heiankyoColumn = Array.new(15).map{ Array.new(16, 1) }

  # 平安京の交差点: 交差点までの経路の総数
  heiankyoCross = Array.new(16).map{ Array.new(16, 0) }

  # マタタビのおいてある道に0を代入
  matatabiPathes.each do |x| # x: x1 y1 x2 y2
    a, b, c, d = x
    minx = [a, c].min # 道の端点の座標のうち、
    miny = [b, d].min # 出発点 = 小さい方を用いる。
    if a == c # 縦の道
      heiankyoColumn[miny][minx] = 0
    else      # 横の道
      heiankyoRow[miny][minx] = 0
    end
  end

  # まず、外周の交差点の値を初期化する.外周の交差点への経路の総数は、マタタビがなければすべて1.
  # y = 0 の座標の交差点
  0.upto(14) do |i|
    # マタタビが見つかった場合、それ以降は中止
    heiankyoRow[0][i].zero? ? break : heiankyoCross[0][i+1] = 1
  end

  # x = 0 の座標の交差点
  0.upto(14) do |i|
    # マタタビが見つかった場合、それ以降は中止
    heiankyoColumn[i][0].zero? ? break : heiankyoCross[i+1][0] = 1
  end

  # 中の交差点
  1.upto(gy) do |y|
    1.upto(gx) do |x|
      if heiankyoRow[y][x-1].zero?
      # 交差点にはたどり着けない。
        if heiankyoColumn[y-1][x].zero?  
          heiankyoCross[y][x] = 0
      # 交差点には縦の道からのみ行ける
        else
          heiankyoCross[y][x] = heiankyoCross[y-1][x]
        end
      # 交差点には横の道からのみ行ける
      elsif heiankyoColumn[y-1][x].zero?
        heiankyoCross[y][x] = heiankyoCross[y][x-1]
      # 縦横両方の道から行ける
      else
        heiankyoCross[y][x] += heiankyoCross[y][x-1] + heiankyoCross[y-1][x]
      end
    end
  end

  puts (heiankyoCross[gy][gx].zero? ? "Miserable Hokusai!" : heiankyoCross[gy][gx].to_s)
end

if __FILE__ == $0
  gets.to_i.times{ heian_kyoWalking }
end