program pd;
const
dx:array[1..8] of integer=(-1,0,0,1,1,1,-1,-1);
dy:array[1..8] of integer=(0,1,-1,0,1,-1,-1,1);
var
n,m,i,j,num:longint;
s:char;
a:array[0..1000,0..1000]of boolean;
b:array[0..1000,0..1000]of longint;
d:array[1..500000,1..2]of longint;
procedure chuli(x,y:integer);
var
t,w,p,q,k:longint;
begin
a[x,y]:=false;
d[1,1]:=x; d[1,2]:=y;
t:=1; w:=1;
repeat
for k:= 1 to 8 do
begin
p:=d[t,1]+dx[k];
q:=d[t,2]+dy[k];
if (p>0) and (p<=n) and (q>0) and (q<=n) and a[p,q] then
begin
w:=w+1;
d[w,1]:=p;
d[w,2]:=q;
a[p,q]:=false;
end;
end;
t:=t+1;
until t>w;
num:=num+1;
end;
begin
readln(n);
fillchar(a,sizeof(a),true);
for i:= 1 to n do
begin
for j:= 1 to n do
begin
read(s);
b[i,j]:=ord(s)-ord('0');
if b[i,j]=0 then a[i,j]:=false;
end;
readln;
end;
for i:= 1 to n do
for j:= 1 to n do
begin
if a[i,j]=true then
chuli(i,j);
end;
writeln(num);
end.
/**************************************************************
Problem: 2068
User: admin
Language: Pascal
Result: Wrong Answer
****************************************************************/