Хождение за золотом - 3

Имя входного файла: input.txt
Имя выходного файла: output.txt
Ограничение по времени: 2 секунды
Ограничение по памяти: 64 мегабайта

Однажды царь решил вознаградить одного из своих мудрецов за хорошую работу.
Он привел его в прямоугольную комнату размром NxM, в каждой клетке
которой лежало несколько килограммов золота. Царь разрешил мудрецу
сделать обойти несколько клеток (переходя с клетки, где сейчас
находится мудрец, в одну из четырех с ней соседних), и собрать все
золото, которое попадется на его пути.

Вам дан маршрут мудреца. Требуется определить, сколько килограммов золота
он собрал.

Входные данные
Во входном файле записано план комнаты. Сначала записано количество
строк N, затем - количество столбцов M (1<=N<=20,1<=M<=20).
Затем записано N строк по M чисел в каждой - количество килограммов
золота, которое лежит в данной клетке (число от 0 до 50).
Далее записано число X - сколько клеток обошел мудрец. 
1<=X<=10000.

Известно, что мудрец начал с клетки с координатами (1,1).
Далее записано X-1 число: куда перемещался мудрец:
число 1 обозначает, что мудрец делал шаг вправо,
число 2 обозначает, что мудрец делал шаг вверх,
число 3 обозначает, что мудрец делал шаг влево,
число 4 обозначает, что мудрец делал шаг вниз.

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

Выходные данные
В выходной файл выведите количество килограммов золота, которое собрал мудрец.

Пример
Входные данные:
3 4
1 2 3 4
5 6 7 8
9 10 11 12
9
4 1 1 2 3 3 1 4
Выходные данные:
24