k1,n,i,j,k2,k,x:longint;
vis:array[1..10,1..10]of boolean;
c:array[1..10]of longint;
b:array[1..10]of longint;
procedure sou;
var i,j:longint;
begin
k2:=0;
for i:=1 to n do
if c[i]=0
then begin k2:=i;exit;end;
if k2=0
then begin writeln(’What a poor boy!’);halt;end;
end;
begin
readln(n);
for i:=1 to n do
begin
read(k);
for j:=1 to k do
begin
read(x);
inc(c[i]);
vis[x,i]:=true;
end;
readln;
end;
k1:=1;
repeat
sou;
b[k1]:=k2;
inc(k1);
for i:=1 to n do
if vis[k2,i]=true
then begin vis[k2,i]:=false;
dec(c[i]);
end;
for i:=1 to n do
vis[i,k2]:=true;
until k1=n+1;
for i:=1 to n-1 do
write(b[i],’ ’);
writeln(b[n]);
end.
why 60分啊?是拓扑排序啦?????晕晕