#include<iostream>
using namespace std;
string str;
int n,m,goal,d;
int t[32][11];
int gflg[32][11];
int flg,flg2,ans,ans2;
int gf(int y,int x){
  if(y<0||y>=32||x<0||x>=n+1)return 0;
  return gflg[y][x];
}
int tt(int y,int x){
  if(y<0||y>=32||x<=0||x>=n+1)return 0;
  return t[y][x];
}

void init(){
  for(int i=0;i<31;i++)
    for(int j=0;j<11;j++)t[i][j]=gflg[i][j]=0;
}


void make_gflg(int y,int x){ 
  //cout<<y<<" "<<x<<endl;
  gflg[y][x]=1;
  if(y==0)return;

  if(tt(y-1,x-1)==0&&tt(y-1,x)==0)make_gflg(y-1,x);
  else if(tt(y-1,x-1)==1){
    make_gflg(y-1,x-1);
  }else{
    make_gflg(y-1,x+1);
  }

}

void compute(int y,int x){
  if(gflg[y][x]==1){
    flg=1;
    return;
  }
  if(y==d+1)return;

  if(tt(y,x-2)==0&&tt(y,x-1)==0&&tt(y,x)==0&&gf(y+1,x-1)==1){
    flg=flg2=1;
    ans=y;ans2=x-1;
    return;
  }
  if(tt(y,x-1)==0&&tt(y,x)==0&&tt(y,x+1)==0&&gf(y+1,x+1)==1){
    flg=flg2=1;
    ans=y;ans2=x;
    return;
  }
  if(tt(y,x)==1){
    compute(y+1,x+1);
  }else if(tt(y,x-1)==1){
    compute(y+1,x-1);
  }else{
    compute(y+1,x);
  }
}


int main(){
  while(cin>>n&&n){
    cin>>m>>goal>>d;
    init();
    for(int i=1;i<=d;i++){
      cin>>str;
      for(int j=0;j<n-1;j++){
	t[i][j+1]=str[j]-'0';
      }   
    }
    make_gflg(d+1,goal);
    flg=flg2=0;
    ans=ans2=0;
    compute(0,m);
    if(flg){
      if(flg2){
	cout<<ans<<" "<<ans2<<endl;
      }else{
	cout<<"0"<<endl;
      }
    }else{
      cout<<"1"<<endl;
    }
  }

  return 0;
}