#include <iostream>
#include <vector>
#include <queue>
using namespace std;
int N, M, d;
int dir[4][2] = {{-1, 0}, {0, 1}, {1, 0}, {0, -1}};
queue <pair<int, int>> cleaning;
void clean_room(vector <vector<int>> &room) {
int cnt = 0;
while(!cleaning.empty()) {
int x = cleaning.front().first;
int y = cleaning.front().second;
cleaning.pop();
if(room[x][y] == 0) {
room[x][y] = -1;
cnt++;
}
bool dirty = false;
for(int i=0; i<4; i++) {
int nx = x + dir[i][0];
int ny = y + dir[i][1];
if(nx < 0 || ny < 0 || nx >= N || ny >= M) continue;
if(room[nx][ny] == 0) {
dirty = true;
break;
}
}
if(!dirty) {
int nx = x - dir[d][0];
int ny = y - dir[d][1];
if(nx < 0 || ny < 0 || nx >= N || ny >= M || room[nx][ny] == 1) break;
if(room[nx][ny] != 1) cleaning.push({nx, ny});
}
else {
d--;
if(d < 0) d = 3;
int nx = x + dir[d][0];
int ny = y + dir[d][1];
if(room[nx][ny] == 0) {
cleaning.push({nx, ny});
}
else cleaning.push({x, y});
}
}
cout << cnt;
}
int main() {
cin >> N >> M;
int r, c;
cin >> r >> c >> d;
vector <vector<int>> room(N, vector<int>(M));
for(int i=0; i<N; i++) {
for(int j=0; j<M; j++) {
cin >> room[i][j];
}
}
cleaning.push({r, c});
clean_room(room);
return 0;
}