#include<iostream> char data[16]; int a[16]; int d[5]={0,-4,1,4,-1}; char b[16]; int flag; int count; int min=1000; void dfs(int step) { if(step==16) { for(int i=0;i<16;i++) b[i]=data[i]; count=0; for(int i=0;i<16;i++) { if(a[i]==1) { int t; count++; if(count>min) return; for(int k=0;k<5;k++) { t=i+d[k]; if(t>=0&&t<16) { if(b[t]=='b') b[t]='w'; else b[t]='b'; } } } } for(int i=1;i<16;i++) { if(b[i]==b[0]) flag=1; else { flag=0; break; } } if(flag==1) { if(min>count) { min=count; printf("%d",min); } } return ; } for(int i=0;i<2;i++) { a[step]=i; dfs(step+1); } } int main() { freopen("in.txt","r",stdin); for(int i=0;i<16;i++) { scanf("%c",&data[i]); } dfs(0); }