#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);
}