Электрик Вася целый день паяет платы, а если точнее, то делает разводку платы — прокладывает дорожки по ней. Частенько Васе попадается работа по проводке двух дорожек из углов платы к углам на противоположной стороне. Плату можно представить как n рядов по m участков в каждом, где некоторые участки уже содержат в себе элементы и через них дорожку проводить нельзя. Стартовые участки дорожек находятся в участках (1, 1) и (n, 1), а противоположные углы — в (1, m) и (n, m). Нельзя допускать пересечения двух дорожек, то есть проводить дорожки через один и тот же участок. И также, по специфике обработки платы, при прокладывании путь не может отдаляться от целевой стороны. Это значит, что если последний участок пути дорожки находится в координате (r, c), то следующий участок дорожки должен быть в (r + 1, c), (r - 1, c) или (r, c + 1). Теперь Васе вдруг стало интересно, а сколькими способами он может проложить дорожки? Два способа считаются различными, если последовательность пути хотя бы одной из дорожек отличается.
Помогите Васе, найдите количество способов.
В первой строке задается три целых числа n, m и k — размеры платы и количество уже занятых участков на ней.
В следующих k строках задается по два целых числа ri и ci — координаты i-го занятого участка. Все координаты занятых участков различны и не находятся в углах платы.
В единственной строке выведите количество возможных способов провести две дорожки с вышеописанными условиями. Ответ требуется выводить по модулю 109 + 7.
4 3 1
3 2
5
5 4 2
1 2
4 3
39