var a:array[1..100,1..100] of 0..1;
v:array[1..100] of boolean;
i,j,n:integer;
procedure bfs;
var q:array[1..100] of integer;
l,r:integer;
begin
l:=1;r:=1;q[l]:=1;
while l<=r do
begin
for i:=1 to n do
begin
if ( not v[i]) and (a[q[l],i]=1) then
begin
write(i);
v[i]:=true;
inc(r);
q[r]:=i;
end;
end;
inc(l);
end;
end;
begin
readln(n);
for i:=1 to n do
for j:=1 to n do read(a[i,j]);
fillchar(v,sizeof(v),false);
v[1]:=true;
write(1);
bfs;
end.
v:array[1..100] of boolean;
i,j,n:integer;
procedure bfs;
var q:array[1..100] of integer;
l,r:integer;
begin
l:=1;r:=1;q[l]:=1;
while l<=r do
begin
for i:=1 to n do
begin
if ( not v[i]) and (a[q[l],i]=1) then
begin
write(i);
v[i]:=true;
inc(r);
q[r]:=i;
end;
end;
inc(l);
end;
end;
begin
readln(n);
for i:=1 to n do
for j:=1 to n do read(a[i,j]);
fillchar(v,sizeof(v),false);
v[1]:=true;
write(1);
bfs;
end.