import java.util.Scanner;
import java.util.Arrays;
import java.util.Queue;
import java.util.LinkedList;
class bfs2{
int x;
int y;
}
public class BFS炸弹人 {
static int m,n,sx,sy,max=0,mx=0,my=0;
static char[][] a=new char[20][20];
static boolean[][] book=new boolean[20][20];
static int[][] dis={{1,0},{-1,0},{0,1},{0,-1}};
static void bfs(){
Queue<bfs2> q=new LinkedList<bfs2>();//坐标队列
bfs2 n1=new bfs2();
n1.x=sx;
n1.y=sy;
q.add(n1);
while(!q.isEmpty()){
bfs2 n2=new bfs2();//new一个对象,!!!!,每一次都要new
n2=q.peek();
q.poll();
for(int i=0;i<4;i++){
int tx=n2.x+dis[i][0];
int ty=n2.y+dis[i][1];
if(tx<0||ty<0||tx>m||ty>n) continue;
if(a[tx][ty]!='.') continue;
if(!book[tx][ty]){
book[tx][ty]=true;
bfs2 n3=new bfs2();
n3.x=tx;
n3.y=ty;
q.add(n3);
int sum=getnum(tx,ty);//计算消灭敌人的数量
if(sum>max){
max=sum;
mx=tx;
my=ty;
}
}
}
}
}
static int getnum(int i,int j){
int sum,x,y;
sum=0;
x=i;
y=j;
while(a[x][y]!='#'){
if(a[x][y]=='G'){
sum++;
}
x++;
}
x=i;
y=j;
while(a[x][y]!='#'){
if(a[x][y]=='G'){
sum++;
}
x--;
}
x=i;
y=j;
while(a[x][y]!='#'){
if(a[x][y]=='G'){
sum++;
}
y++;
}
x=i;
y=j;
while(a[x][y]!='#'){
if(a[x][y]=='G'){
sum++;
}
y--;
}
return sum;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
for(int i=0;i<20;i++){
Arrays.fill(a[i], ' ');
Arrays.fill(book[i], false);
}
m=sc.nextInt();
n=sc.nextInt();
sx=sc.nextInt();
sy=sc.nextInt();
for(int i=1;i<=m;i++){
String s=sc.next();
for(int j=1;j<=n;j++){
a[i][j]=s.charAt(j-1);
}
}
bfs();
System.out.println("("+mx+","+my+")--"+max);
}
}