using System;
using System.IO;


namespace Heiankyo
{
    class Heiankyo
    {
        static void Main(string[] args)
        {

            int datanum = int.Parse(Console.ReadLine());
            for (int num = 0; num < datanum; num++)
            {
                string[] str = Console.ReadLine().Split(' ');
                int stashx = int.Parse(str[0]);
                int stashy = int.Parse(str[1]);
                int[,,] map = new int[stashx + 1, stashy + 1, 2]; 
                int catnipnum = int.Parse(Console.ReadLine());
                for (int i = 0; i < catnipnum; i++)
                {
                    string[] temp = Console.ReadLine().Split(' ');
                    if ((int.Parse(temp[0] + temp[1])) > int.Parse(temp[2] + temp[3])) //??????if-else?????§2??????????????§?¨????????????????????????´????????????????????????????????????
                    {
                        if (map[int.Parse(temp[0]), int.Parse(temp[1]), 1] != 0) map[int.Parse(temp[0]), int.Parse(temp[1]), 1] = 3;
                        else
                        {
                            if (temp[0] == temp[2]) map[int.Parse(temp[0]), int.Parse(temp[1]), 1] = 1;
                            else map[int.Parse(temp[0]), int.Parse(temp[1]), 1] = 2; //????????°??????????????????????????????????????´?????????1??????????????????????????????????????´?????????2?????\??????
                        }
                    }
                    else //????§????????????????????¶???????
                    {
                        if (map[int.Parse(temp[2]), int.Parse(temp[3]), 1] != 0) map[int.Parse(temp[2]), int.Parse(temp[3]), 1] = 3;
                        else
                        {
                            if (temp[0] == temp[2]) map[int.Parse(temp[2]), int.Parse(temp[3]), 1] = 1;
                            else map[int.Parse(temp[2]), int.Parse(temp[3]), 1] = 2;
                        }
                    }
                }

                for (int i = 0; i <= stashx; i++)
                {
                    for (int j = 0; j <= stashy; j++)
                    {
                        if (i == 0 & j == 0) map[i, j, 0] = 1;
                        else if (i == 0)
                        {
                            if (map[i, j, 1] == 0) map[i, j, 0] = map[i, j - 1, 0];
                            if (map[i, j, 1] == 1) map[i, j, 0] = 0;
                        }
                        else if (j == 0)
                        {
                            if (map[i, j, 1] == 0) map[i, j, 0] = map[i - 1, j, 0];
                            if (map[i, j, 1] == 2) map[i, j, 0] = 0;
                        }
                        else
                        {
                            if (map[i, j, 1] == 0) map[i, j, 0] = map[i, j - 1, 0] + map[i - 1, j, 0];
                            if (map[i, j, 1] == 1) map[i, j, 0] = map[i - 1, j, 0];
                            if (map[i, j, 1] == 2) map[i, j, 0] = map[i, j - 1, 0];
                            if (map[i, j, 1] == 3) map[i, j, 0] = 0;
                        }

                    }
                }

                if (map[stashx, stashy, 0] != 0) Console.WriteLine(map[stashx, stashy, 0]);
                else Console.WriteLine("Miserable Hokusai!");

            }
            Console.Read();
        }
    }
}

Measured memory_bytes: 9328