#include <stdio.h>
#include <string.h>

#include<iostream>
using namespace std;
#include<queue>
struct PP{
	int x;
	int y;
};
char s[1002][1002];
int D[1002][1002];
int A[1002][1002],c=1;
void   kensa();
int main(){
	int i,j;
	while(1){
	for(i=0;i<12;i++){
		for(j=0;j<12;j++){
		A[i][j]=0;
		}
		
	}
	for(i=0;i<12;i++){
		if(!(scanf("%s",s[i]))){
		break;
		}
	}
	for(i=0;i<12;i++){
		for(j=0;j<12;j++){
			if(s[i][j]=='0'){
			D[i][j]=0;
			}
			else{
			D[i][j]=1;
			}
		}
	}
	kensa();

	printf("%d",c-1);
	c=1;
	}
	return 0;
}


void kensa(){
	
	PP S;
	queue<PP> P;
	int  w,h;
	int d=0,i=0,j=0,l=-1;
	int x[4]={ 1, 0,-1,0};
	int y[4]={ 0 ,1,0,-1};
	for(i=0;i<12;i++){
		for(j=0;j<12;j++){
		if(D[i][j]==1&&A[i][j]==0){
			S.x=j;
			S.y=i;
			P.push(S);
	while(1){
		l++;
		
		if(l==4) {
			l=0;
			P.pop();
			if(P.empty()){
				c++;
				l=-1;
			break;
			}
		}
		S=P.front();
		A[S.y][S.x]=c;
		S.x+=x[l];
		S.y+=y[l];
		if(S.y==12||S.x==12||S.x==-1||S.y==-1){
		continue;
		}
		if(A[S.y][S.x]==c||D[S.y][S.x]==0){
			continue;

		} 
		P.push(S);
	}
	}
	}
	}
}