var fs = require('fs');
var input = fs.readFileSync('/dev/stdin').toString().split('\n');
const moveDice = (dice, command) => {
const newDice = [...dice];
switch (command) {
case 1:
newDice[0] = dice[2];
newDice[1] = dice[3];
newDice[2] = dice[1];
newDice[3] = dice[0];
return newDice;
case 2:
newDice[0] = dice[3];
newDice[1] = dice[2];
newDice[2] = dice[0];
newDice[3] = dice[1];
return newDice;
case 3:
newDice[0] = dice[4];
newDice[1] = dice[5];
newDice[4] = dice[1];
newDice[5] = dice[0];
return newDice;
case 4:
newDice[0] = dice[5];
newDice[1] = dice[4];
newDice[4] = dice[0];
newDice[5] = dice[1];
default:
return newDice;
}
};
const solution = (N, M, x, y, board, commands) => {
let dice = [0, 0, 0, 0, 0, 0];
const DIRECTION = [null, [0, 1], [0, -1], [-1, 0], [1, 0]];
for (const command of commands) {
const [dx, dy] = DIRECTION[command];
const [nextX, nextY] = [x + dx, y + dy];
if (nextX < 0 || nextX >= N || nextY < 0 || nextY >= M) continue;
[x, y] = [nextX, nextY];
dice = moveDice(dice, command);
if (board[x][y] === 0) board[x][y] = dice[1];
else {
dice[1] = board[x][y];
board[x][y] = 0;
}
console.log(dice[0]);
}
};
const [N, M, x, y, K] = input[0].split(' ').map((v) => Number(v));
const board = input
.slice(1, 1 + N)
.map((v) => v.split(' ').map((v) => Number(v)));
const commands = input[1 + N].split(' ').map((v) => Number(v));
solution(N, M, x, y, board, commands);