#include<iostream>
#include<algorithm>
#include<cstring>
#include<queue>
using namespace std;
typedef pair<int, int> PII;
int X, Y, Mx, My, dist[101][101];
char a[101][101] = {0};
PII start;//起点
int dx[8] = {0, 0, 1, -1, 1, 1, -1, -1},
dy[8] = {1, -1, 0, 0, 1, -1, 1, -1};
int bfs() {
// 清空距离矩阵,-1表示没访问过
memset(dist, -1, sizeof dist);
// 广搜队列
queue<PII> q;
// 起点入列
q.push(start);
// 起点距离为0
dist[start.first][start.second] = 0;
int res = 0;
while(q.size()) {
//队头
auto t = q.front();
q.pop();
for(int i = 0; i < 8; i++) {
int x = t.first + dx[i], y = t.second + dy[i];
if(x > 0 && x <= Y && y > 0 && y <= X && a[x][y] == '.' && dist[x][y] == -1) {
dist[x][y] = dist[t.first][t.second] + 1;
res = max(res, dist[x][y]);
//入列
q.push(make_pair(x, y));
}
}
}
return res;
}
int main(){
cin >> X >> Y >> start.second >> start.first;
getchar();
string str;
for(int i = Y; i; i--) {
cin >> str;
for(int j = 1; j <= X; j++) a[i][j] = str[j - 1];
}
cout << bfs();
return 0;
}