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