И снова лабиринт
Одной из самых популярных игр всех времён и народов является игра "Лабиринт". Игра происходит на клетчатом поле N×M. Игрок может произносить команды "влево", "вправо", "вверх", "вниз". Для каждой клетки поля и каждой команды ведущим определено поле, на которое переместится игрок (то есть дана карта лабиринта). Однажды игра была прервана, и ведущий забыл, на каком поле находится игрок. К счастью, сохранилась полная запись игры — последовательность команд, произнесённых игроком.
Напишите программу для определения полей, в которых игрок может находиться сейчас.
Входные данные
В первой строке находятся числа N и M (1 ≤ N, M ≤ 100). Далее идут 4 блока данных. В каждом блоке N строк. В каждой строке M пар: i-я пара в j-й строке в k-м блоке показывает координаты игрока после произнесения k-й команды на клетке с координатами (j, i). Далее идет число команд S (1 ≤ S ≤ 4000), произнесённых игроком. На следующей строке идут S чисел — номера этих команд.
Выходные данные
В первой строке выведите число L клеток, на которых может оказаться игрок после выполнения заданной последовательности команд. На следующих L строках — координаты этих клеток, упорядоченных сначала по первой координате, а потом по второй.