#include <iostream>
#include <string>
#include <string.h>
using namespace std;
#define REP(i,m,n) for(int i=m;i<n;i++)
#define rep(i,n) REP(i,0,n)
int n,m,h,d;
bool g[33][15][15];
bool is_ok()
{
  int x,y; x=m; y=0;
  while(y!=d){
    if(x<n && g[y][x][x+1])x++;
    else if(x>0 && g[y][x][x-1])x--;
    y++;
  }
  return x==h;
}
void gen_edge(string ss[])
{
  memset(g,0,sizeof(g));
  rep(ii,d){
    string& s=ss[ii];
    rep(i,s.size()) if(s[i]=='1')g[ii][i][i+1]=g[ii][i+1][i]=true;
  }
}
int main(void)
{
  for(;;){
    scanf("%d",&n); if(!n)break;
    scanf("%d%d%d",&m,&h,&d);
    m--; h--;
    string ss[50];
    rep(i,d)cin>>ss[i];
    gen_edge(ss);
    if(is_ok()){
      puts("0");
      continue;
    }
    rep(i,d)rep(j,n){
      if(ss[i][j]=='1')continue;
      if(j>0 && ss[i][j-1]=='1')continue;
      if(j<n-1 && ss[i][j+1]=='1')continue;
      ss[i][j]='1';
      gen_edge(ss);
      if(is_ok()){
        printf("%d %d\n",i+1,j+1);
        goto END;
      }
      ss[i][j]='0';
    }
    puts("1");
  END:;
  }
}