#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
int n, m;
string a;
cin >> n >> m;
int **schedule = new int*[n];
for (int i = 0; i < n; i++)
{
schedule[i] = new int[m];
cin >> a;
for (int j = 0; j < m; j++)
{
if (a[j] == 'O')
schedule[i][j] = 1;
else
schedule[i][j] = 0;
}
}
int s, t; // 시작 , 종료
cin >> s >> t;
s--;
t -= 2 ;
int *cnt_ary = new int[m];
int a1 = s; /// 탐색 시작구간 임시로 a1로 잡음
int cnt = 0; // 방 옮긴 횟수
int tmp[2];
while (s <= t) { // 시작일로부터 종료일까지 전체 탐색
for (int i = 0; i < m; i++) // CNT_ARY 초기화
cnt_ary[i] = 0;
for (int i = 0; i < m; i++)
{
a1 = s;
while (a1 <= t) { // 시작 == 종료 값으면 종료
if (schedule[a1][i] == 1)
{
cnt_ary[i] ++;
a1++;
}
else
break;
}
}
/*cnt_ary 가장 큰 값의 인덱스을 뽑는다. k
s += (cnt_ary[k]-1)
cnt_ary 모두 0이면 -1 출력*/
tmp[1] = cnt_ary[0]; // value
tmp[0] = 0; // index
//cnt_ary 가장 큰 값 탐색.
for (int i = 1; i < m; i++)
{
if (cnt_ary[i] > tmp[1])
{
tmp[0] = i;
tmp[1] = cnt_ary[i];
}
}
if (tmp[1] == 0)//cnt_ary 모두 0이면 -1 출력
{
cnt = 0;
break;
}
else {
s += (tmp[1]);
cnt++;
}
}
cout << cnt-1 << endl;
}