#include<iostream>
using namespace std;
int d[5][5];
char c[5][5];
int mm = 65536;
bool all = false;
void change(int i,int j){
d[i][j] = 1-d[i][j];
if(i>1)d[i-1][j] = 1-d[i-1][j];
if(i<4)d[i+1][j] = 1-d[i+1][j];
if(j>1)d[i][j-1] = 1-d[i][j-1];
if(j<4)d[i][j+1] = 1-d[i][j+1];
}
bool test(){
int tmp = d[1][1];
for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
if(tmp!=d[i][j])return false;
}
}
return true;
}
void meiju(int n,int m,int num){
for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
if(i<n||(i==n&&j<=m))
continue;
change(i,j);
if(test()&&num<mm){
mm = num;
all = true;
}
meiju(i,j,num+1);
change(i,j);
}
}
}
int main(){
for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
cin>>c[i][j];
if(c[i][j]=='w')d[i][j] = 1;
else d[i][j] = 0;
}
getchar();
}
if(test()){
cout<<0<<endl;return 0;
}
meiju(0,0,1);
if(all){
cout<<mm<<endl;
}
else{
cout<<"Impossible"<<endl;
}
return 0;
}