/*
#include <stdio.h>
#define SIZE 200
int stack[SIZE];
int top=-1;
push(int data)
{
stack[++top]=data;
}
int pop()
{
if(top!=-1)
{
return stack[top--];
}
return 0;
}
int main()
{
char str1[100]= {};
char str2[100]= {},tmp[100];
int a,b,i,n,c=0,num=0;
scanf("%s %s",str1, str2);
a=strlen(str1)-1;
b=strlen(str2)-1;
if(a<b)
{
strcpy(tmp,str1);
strcpy(str1,str2);
strcpy(str2,tmp);
a=strlen(str1)-1;
b=strlen(str2)-1;
}
while(b>=0)
{
num=str1[a]-'0'+str2[b]-'0'+c;
c=num/10;
//printf("%d",num%10);
push(num%10);
a--;
b--;
}
while(a>=0)
{
num=str1[a]-'0'+c;
c=num/10;
//printf("%d",num%10);
push(num%10);
a--;
}
if(c==1) push(1);
while(top!=-1)
{
printf("%d",pop());
}
return 0;
}
*/
//단지 수 세기 dfs 재귀
#include <stdio.h>
int map[25][25]= {},n,m=0;
int ar[]
void dfs(int i, int j)
{
if(i>=n || i<0 || j>=n || j<0 ||map[i][j]!=1)
return ;
map[i][j]=-1; //visited check
dfs(i-1,j);
dfs(i+1,j);
dfs(i,j-1);
dfs(i,j+1);
}
/*void view()
{
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
printf("%2d ",map[i][j]);
}
printf("\n");
}
printf("\n");
}*/
int main()
{
int i, j,cnt=0;
scanf("%d",&n);
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
{
scanf("%1d",&map[i][j]);
}
}
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
{
if (map[i][j]==1)
{
// m=0;
dfs(i,j);
// printf("%d ",m);
cnt++;
// view();
}
}
}
printf("%d\n",cnt);
}
/*
#include <stdio.h>
char map[100][100];
int c=0,a,b;
dfs(int i, int j)
{
if (i<0 || i>=a || j<0 || j>=b || map[i][j]!='L') return ;
map[i][j]=',';
dfs(i-1,j);
dfs(i+1,j);
dfs(i,j+1);
dfs(i,j-1);
dfs(i-1,j+1);
dfs(i-1,j-1);
dfs(i+1,j+1);
dfs(i+1,j-1);
}
int main()
{
int i,j,cnt=0;
scanf("%d %d",&b,&a);
for (i=0; i<a; i++)
{
for (j=0; j<b; j++)
{
scanf(" %c",&map[i][j]);
}
}
for (i=0; i<a; i++)
{
for (j=0;j<b;j++)
{
if (map[i][j]=='L')
{
dfs(i,j);
c++;
}
}
}
printf("%d",c);
return 0;
}
*/
/*
#include <stdio.h>
int map[7][7]={},m;
void dfs(int i, int j,int color)
{
if ( i<0 || j<0 || j>=7 || i>=7 ||map[i][j]!=color) return ;
map[i][j]=-1;
m++;
dfs(i-1,j,color);
dfs(i+1,j,color);
dfs(i,j+1,color);
dfs(i,j-1,color);
}
int main()
{
int a,i,j,cnt=0;
for (i=0; i<7; i++)
{
for (j=0; j<7; j++)
{
scanf("%d",&map[i][j]);
}
}
for (i=0; i<7; i++)
{
for (j=0; j<7; j++)
{
m=0;
if(map[i][j]!=-1) dfs(i,j,map[i][j]);
if(m>=3)
{
cnt++;
}
}
}
printf("%d",cnt);
return 0;
}
*/