#include <stdio.h> char map[4][4]; int map1[4][4]; int map2[4][4]; int num[16]; int min=1000,n; int shu[20]; int shu1[20]; int len; void bian(int x , int y) { for(int i=0;i<4;i++) { if(i!=y) { if(map2[x][i]==0) map2[x][i]=1; else map2[x][i]=0; } if(map2[i][y]==0) map2[i][y]=1; else map2[i][y]=0; } } int safe() { int r=1; for(int i=0;i<4;i++) { for(int j=0;j<4;j++) { if(map2[i][j]==1) { r=0; break; } } if(r==0) break; } return r; } void dfs(int step) { if(step==16) { n=0; len=0; int k=0; for(int i=0;i<4;i++) for(int j=0;j<4;j++) map2[i][j]=map1[i][j]; for(int i=0;i<16;i++) { if(num[i]==1) { bian(i/4,i%4); shu[n]=i/4; shu1[n]=i%4; n++; if(n>min) return; } } if(safe()) { if(n<min) { min=n; printf("%d ",min); for(int i=0;i<min;i++) printf("%d %d ",shu[i]+1,shu1[i]+1); } } return ; } for(int i=0;i<2;i++) { num[step]=i; dfs(step+1); } } int main() { freopen("in.txt","r",stdin); for(int i=0;i<4;i++) { for(int j=0;j<4;j++) { scanf("%c",&map[i][j]); if(map[i][j]=='+') map1[i][j]=1; if(map[i][j]=='-') map1[i][j]=0; } getchar(); } dfs(0); return 0; }