B. Расписание докладов
ограничение по времени на тест
4 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Алексей – организатор конференции по машинному зрению. Конференция будет проходить на протяжении n полных недель, и на ней выступят k докладчиков. Каждый докладчик подготовил три выступления. Алексей сейчас составляет расписание докладов, которое представляет из себя таблицу 7 × n. Расписание нужно составить таким образом, чтобы у каждого докладчика из трех его выступлений нашлись два выступления с разницей в 7 дней, и два выступления с разницей в 1 день. Также, для удобства администрирования, требуется, чтобы три дня выступлений каждого докладчика образовывали в таблице расписания связную область.

Напомним, что подмножество клеток таблицы образует связную область в том случае, если из любой клетки подмножества можно добраться до любой другой клетки подмножества за конечное число переходов, при условии, что переход от одной клетки подмножества к другой клетке подмножества можно делать только если у них есть общая сторона.

Алексей хорошо разбирается в математике и поэтому смог вычислить, что 7n - 3k дней конференции будут свободны от выступлений, эти дни будут выходными. Но и тут не все так просто. У Алексея есть список из m дней, в которые выходные ставить нельзя. Теперь Алексей хочет сначала перебрать все корректные способы расположить выходные дни в таблице 7 × n. Затем для каждого такого способа он хочет посчитать количество способов распределить оставшиеся 3k дней на k троек, таким образом, чтобы для каждой тройки выполнялись изложенные выше требования (порядок троек в разбиении не важен). После этого Алексей хочет просуммировать все получившиеся результаты.

Помогите Алексею с этими расчетами. Так как ответ может быть слишком большим, его нужно вывести по модулю 109 + 33.

Входные данные

В первой строке через пробел даны два целых числа n и k, 2 ≤ n ≤ 100, 7n - 20 ≤ 3k ≤ 7n.

Во второй строке дано целое число m, 0 ≤ m ≤ 7n.

В следующих m строках через пробел даны по два целых числа wi и di, задающие день в который нельзя ставить выходной, где wi – это номер недели, а di – номер дня недели, 1 ≤ wi ≤ n, 1 ≤ di ≤ 7.

Выходные данные

В единственной строке выведите одно целое число – ответ на задачу по модулю 109 + 33.

Пример
Входные данные
2 3
9
1 1
1 2
1 3
1 5
2 1
2 2
2 3
2 4
2 5
Выходные данные
2