//Drawing Lots ?
#include<bits/stdc++.h>
using namespace std;

vector<int> mv(string s){
  vector<int> tmp;
  for(int i=0; i<s.length(); i++)
    tmp.push_back(s[i]);
  return tmp;
}

int main(){
  int n, m, g, d;
  vector<vector<int> > input;
  while(cin>>n){
    if(n==0)break;
    cin>>m>>g>>d;
    input.clear();
    for(int i=0; i<d; i++){
      string s;
      cin>>s;
      input.push_back(mv(s));
    }
    vector<int> content;
    for(int i=0; i<d; i++){content.push_back(i+1);}
    for(int i=0; i<d; i++){
      for(int j=0; j<input[i].size(); j++){
        if(input[i][j]=='1')swap(content[j], content[j+1]);
      }
    }
    if(m==content[g]){cout<<"0"<<endl; continue;}

    int gg=content[g-1];
    content.clear();
    for(int i=0; i<d; i++){content.push_back(i+1);}
    for(int i=0; i<d; i++){
      for(int j=0; j<n-1; j++){
        if(input[i][j]=='1')swap(content[j], content[j+1]);
        else if((0<=j-1 ? input[i][j-1]=='0' : true)&&(j+1<n-1 ? input[i][j+1]=='0' : true)){
          if((content[j]==m&&content[j+1]==gg)||(content[j]==gg&&content[j+1]==m)){
            cout<<i+1<<" "<<j+1<<endl;
            goto CONTINUE;
          }
        }
      }
    }
    cout<<"1"<<endl;
  CONTINUE:
    ;
  }
  return 0;
}