#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
#define inf 0x3f3f3f3f
char s[5][5];
int a[5][5];
int tot=inf;
struct node{
int dx;
int dy;
}now[26],ans[26];
bool check(){
for(int i=1;i<=4;++i)
for(int j=1;j<=4;++j)
if(!a[i][j]) return 0;
return 1;
}
void dfs(int x,int y,int cnt){
if(x>4){
if(check()&&cnt<tot){
tot=cnt;
for(int i=1;i<=cnt;++i)
ans[i]=now[i];
}
return;
}
if(y>4) {
dfs(x+1,1,cnt);
return;
}
for(int i=1;i<=4;++i)
a[x][i]^=1,a[i][y]^=1;
a[x][y]^=1;
now[cnt+1].dx=x,now[cnt+1].dy=y;
dfs(x,y+1,cnt+1);
for(int i=1;i<=4;++i)
a[x][i]^=1,a[i][y]^=1;
a[x][y]^=1;
dfs(x,y+1,cnt);
return;
}
int main(){
for(int i=1;i<=4;++i)
for(int j=1;j<=4;++j){
scanf(" %c",&s[i][j]);
if(s[i][j]=='-') a[i][j]=1;
}
dfs(1,1,0);
printf("%d\n",tot);
for(int i=1;i<=tot;++i)
printf("%d %d\n",ans[i].dx,ans[i].dy);
return 0;
}