/*
#include<stdio.h>
int arr[10000000]= {};
int n;
int bs(int s, int e, int k) { // arr[s] ~ arr[e] 에서 k값의 위치를 리턴 , 없으면 -1리턴
int mid=(s+e)/2;
if(s>=e){
if(arr[s]>=k)
{
return s;
}
else
{
return n+1;
}
}
if(arr[mid]>=k) {
bs(s, mid, k);
}
else {
bs(mid+1, e, k);
}
}
int main() {
int i, k;
scanf("%d",&n);
scanf("%d",&k);
for(i=1; i<=n; i++) {
scanf("%d",&arr[i]);
}
printf("%d ",bs(1,n,k));
return 0;
}
*/
/*#include <stdio.h>
int arr[1000000];
int bs(int s, int e, int k)
{
int mid=(s+e)/2;
if(s>e)
{
return -1;
}
if(arr[mid]==k)
{
return mid;
}
else if(arr[mid]>k)
{
bs(s, mid-1, k);
}
else
{ bs(mid+1, e, k);
}
}
int main()
{
int n, i, k;
scanf("%d",&n);
scanf("%d",&k);
for(i=1;i<=n;i++)
{
scanf("%d",&arr[i]);
}
printf("%d",bs(1,n,k));
return 0;
}*/
/*
#include<stdio.h>
int arr[101][101]= {};
int d;
int i, j;
int n;
int e;
int visited[100000]= {};
int sum=0;
void dfs(int node) {
visited[node]=1; //방문했음
for(int i=1; i<=n; i++) {
if(arr[node][i]==1 && visited[i]==0) { //방문x&& 연결o
dfs(i);
}
}
}
int main() {
scanf("%d", &n);
scanf("%d", &e);
for(d=1; d<=e; d++) {
scanf("%d %d", &i, &j);
arr[i][j]=1;
arr[j][i]=1;
}
dfs(1);
for(i=1; i<=n; i++) {
if(visited[i]==1) {
sum++;
}
}
printf("%d", sum-1);
}
*/
/*#include<stdio.h>
int n;
int map[100][100]= {};
int house[1000]= {};
int cnt=0;
void dfs(int i, int j) {
map[i][j]=0;
house[cnt]++;
//어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우
if(map[i][j+1]==1)
dfs(i, j+1);
if(map[i+1][j]==1)
dfs(i+1, j);
if(map[i-1][j]==1)
dfs(i-1, j);
if(map[i][j-1]==1)
dfs(i, j-1);
}
int main() {
int i, j;
scanf("%d", &n);
for(i=1; i<=n; i++) {
for(j=1; j<=n; j++) {
scanf("%1d", &map[i][j]);
}
}
for(i=1; i<=n; i++) {
for(j=1; j<=n; j++) {
if(map[i][j]==1) {
cnt++;
dfs(i,j);
}
}
}
printf("%d\n", cnt);
int temp;
for(i=1; i<cnt; i++) {
for(j=1; j<=cnt-i; j++) {
if(house[j]>house[j+1]) {
temp = house[j];
house[j] = house[j+1];
house[j+1] = temp;
}
}
}
for(i=1; i<=cnt; i++) {
printf("%d\n",house[i]);
}
}*/
#include<stdio.h>
int n;
n=7;
int a;
int map[100][100]= {};
int house[1000]= {};
int cnt=0;
void dfs(int i, int j) {
map[i][j]=0;
house[cnt]++;
if(map[i][j+1]==1)
dfs(i, j+1);
if(map[i+1][j]==1)
dfs(i+1, j);
if(map[i-1][j]==1)
dfs(i-1, j);
if(map[i][j-1]==1)
dfs(i, j-1);
}
int main() {
int i, j;
for(i=1; i<=n; i++) {
for(j=1; j<=n; j++) {
scanf("%1d", &map[i][j]);
}
}
for(i=1; i<=n; i++) {
for(j=1; j<=n; j++) {
if(map[i][j]==1&&a==3) {
cnt++;
dfs(i,j);
}
}
}
printf("%d\n", cnt);
}



