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