2D-Ним
В настольную игру 2D–ним играют на доске в виде сетки, в узлах которой могут находиться фишки. Ход игрока состоит в удалении любого положительного количества подряд идущих фишек в любой строке или любом столбце. Например, рассмотрим левую доску на следующей картинке:
Игрок может удалить фишки (A), (B), (A, B), (A, B, C), или (B, F), и так далее. Но он не может удалить (A, C), (D, E), (H, I) или (B, G).
С целью написания программного обеспечения для игры в 2D–ним, программист хочет иметь возможность определять, была ли некоторая позиция проанализирована раньше. Из правил игры следует, что две выше представленные позиции эквивалентны. То есть если существует выигрышная стратегия для позиции слева, то эта же стратегия должна применяться для достижения выигрыша и для позиции справа. Последовательные группы фишек могут появляться в любом месте и в любой ориентации. То есть на обеих досках могут появляться одни и те же кластера фишек (кластером называется множество рядом стоящих фишек, достижимых между собой последовательностью одноклеточных ходов по горизонтали или вертикали). Например, кластер из фишек (A, B, C, F, G) встречается на обеих досках, хотя он отражен (справа налево), повернут и сдвинут.
Ваша задача – определить, являются ли две заданные позиции эквивалентными в описанном выше смысле.
Входные данные
Первая строка содержит единственное число – количество тестов t (1 ≤ t ≤ 10). Первая строка каждого теста содержит три целых числа W, H и n (1 ≤ W, H ≤ 100). Здесь W – ширина, а H – высота игровой доски, измеряемые в количестве узлов сетки. n – количество фишек на доске. Вторая строка содержит n пар целых чисел (x_i, y_i), описывающих координаты фишек на первой доске (0 ≤ x_i ≤ W, 0 ≤ y_i ≤ H). Третья строка описывает координаты фишек на второй доске в том же формате.
Выходные данные
Для каждого теста вывести YES или NO в зависимости от того, являются ли две заданные позиции эквивалентными.