const
fi= '' ; //stone1.inp';
fo= '' ; //stone1.out';
maxn= 403 ;
maxm= 403 ;
type
arr1 = array [ 1 .. maxn ] of longint ;
var
link, head, ke : array [ - maxm.. maxm ] of longint ;
f, deg : array [ 1 .. maxn ] of longint ;
i, j, n, m, k : longint ;
st : array [ 1 .. maxn , 1 .. maxn ] of longint ;
top : array [ 1 .. maxn ] of longint ;
a : array [ 1 .. maxn , 1 .. maxn ] of boolean ;
cx : array [ 1 .. maxn ] of boolean ;
procedure add( i, u, v : longint ) ;
begin
link[ i] : = head[ u] ;
head[ u] : = i;
ke[ i] : = v;
end ;
procedure enter;
var u, v, i : longint ;
begin
assign( input, fi) ; reset( input) ;
read ( n) ;
for i : = 1 to n do
begin
read ( u, k) ;
for j: = 1 to k do
begin
read ( v) ;
if a[ u, v] = false then
begin
a[ u, v] : = true ;
inc( deg[ u] ) ;
end ;
if a[ v, u] = false then
begin
a[ v, u] : = true ;
inc( deg[ v] ) ;
end ;
end ;
end ;
close( input) ;
end ;
procedure push( i, x : longint ) ;
begin
inc( top[ i] ) ;
st[ i, top[ i] ] : = x;
end ;
procedure swap( var x, y : longint ) ;
var tg : longint ;
begin
tg: = x; x: = y; y: = tg;
end ;
procedure qs( l, r : longint ; var a : arr1) ;
var i, j, x : longint ;
begin
i : = l; j: = r;
x : = a[ ( l+ r) div 2 ] ;
repeat
while a[ i] > x do inc( i) ;
while a[ j] < x do dec( j) ;
if i<= j then
begin
swap( a[ i] , a[ j] ) ;
inc( i) ; dec( j) ;
end ;
until i>j;
if i<r then qs( i, r, a) ;
if j>l then qs( l, j, a) ;
end ;
procedure dfs( u : longint ) ;
var i, v, s : longint ;
begin
cx[ u] : = false ;
if deg[ u] <= 1 then begin f[ u] : = 1 ; exit; end ;
for v : = 1 to n do
if a[ u, v] then
if cx[ v] then
begin
dfs( v) ;
push( u, f[ v] ) ;
end ;
qs( 1 , top[ u] , st[ u] ) ;
s : = st[ u, 1 ] ;
v : = st[ u, 1 ] - 1 ;
for i: = 2 to top[ u] do
if v < st[ u, i] then
begin
s : = s + ( st[ u, i] - v) ;
v : = v + ( st[ u, i] - v) ;
v : = v - 1 ;
end else v : = v- 1 ;
f[ u] : = s;
end ;
procedure process;
begin
fillchar( cx, sizeof( cx) , true ) ;
dfs( 1 ) ;
end ;
procedure print;
begin
assign( output, fo) ; rewrite( output) ;
writeln ( f[ 1 ] ) ;
close( output) ;
end ;
begin
enter;
process;
print;
end .
Y29uc3QKICBmaT0nJzsvL3N0b25lMS5pbnAnOwogIGZvPScnOy8vc3RvbmUxLm91dCc7CiAgbWF4bj00MDM7CiAgbWF4bT00MDM7CnR5cGUKICBhcnIxID0gYXJyYXlbMS4ubWF4bl0gb2YgbG9uZ2ludDsKdmFyCiAgbGluayxoZWFkLGtlIDogYXJyYXlbLW1heG0uLm1heG1dIG9mIGxvbmdpbnQ7CiAgZixkZWcgOiBhcnJheVsxLi5tYXhuXSBvZiBsb25naW50OwogIGksaixuLG0sayA6IGxvbmdpbnQ7CiAgc3QgOiBhcnJheVsxLi5tYXhuLDEuLm1heG5dIG9mIGxvbmdpbnQ7CiAgdG9wIDogYXJyYXlbMS4ubWF4bl0gb2YgbG9uZ2ludDsKICBhIDogYXJyYXlbMS4ubWF4biwxLi5tYXhuXSBvZiBib29sZWFuOwogIGN4IDogYXJyYXlbMS4ubWF4bl0gb2YgYm9vbGVhbjsKcHJvY2VkdXJlIGFkZChpLHUsdiA6IGxvbmdpbnQpOwogIGJlZ2luCiAgICBsaW5rW2ldIDo9IGhlYWRbdV07CiAgICBoZWFkW3VdIDo9IGk7CiAgICBrZVtpXSA6PSB2OwogIGVuZDsKcHJvY2VkdXJlIGVudGVyOwogIHZhciB1LHYsaSA6IGxvbmdpbnQ7CiAgYmVnaW4KICAgIGFzc2lnbihpbnB1dCxmaSk7cmVzZXQoaW5wdXQpOwogICAgcmVhZChuKTsKICAgIGZvciBpIDo9IDEgdG8gbiBkbwogICAgICBiZWdpbgogICAgICAgIHJlYWQodSxrKTsKICAgICAgICBmb3Igajo9MSB0byBrIGRvCiAgICAgICAgICBiZWdpbgogICAgICAgICAgICByZWFkKHYpOwogICAgICAgICAgICBpZiBhW3Usdl0gPSBmYWxzZSB0aGVuCiAgICAgICAgICAgICAgYmVnaW4KICAgICAgICAgICAgICAgIGFbdSx2XSA6PSB0cnVlOwogICAgICAgICAgICAgICAgaW5jKGRlZ1t1XSk7CiAgICAgICAgICAgICAgZW5kOwogICAgICAgICAgICBpZiBhW3YsdV0gPSBmYWxzZSB0aGVuCiAgICAgICAgICAgICAgYmVnaW4KICAgICAgICAgICAgICAgIGFbdix1XSA6PSB0cnVlOwogICAgICAgICAgICAgICAgaW5jKGRlZ1t2XSk7CiAgICAgICAgICAgICAgZW5kOwogICAgICAgICAgZW5kOwogICAgICBlbmQ7CiAgICBjbG9zZShpbnB1dCk7CiAgZW5kOwpwcm9jZWR1cmUgcHVzaChpLHggOiBsb25naW50KTsKICBiZWdpbgogICAgaW5jKHRvcFtpXSk7CiAgICBzdFtpLHRvcFtpXV0gOj0geDsKICBlbmQ7CnByb2NlZHVyZSBzd2FwKHZhciB4LHkgOiBsb25naW50KTsKICB2YXIgdGcgOiBsb25naW50OwogIGJlZ2luCiAgICB0Zzo9eDt4Oj15O3k6PXRnOwogIGVuZDsKcHJvY2VkdXJlIHFzKGwsciA6IGxvbmdpbnQ7IHZhciBhIDogYXJyMSk7CiAgdmFyIGksaix4IDogbG9uZ2ludDsKICBiZWdpbgogICAgaSA6PWw7ajo9cjsKICAgIHggOj0gYVsobCtyKSBkaXYgMl07CiAgICByZXBlYXQKICAgICAgd2hpbGUgYVtpXSA+IHggZG8gaW5jKGkpOwogICAgICB3aGlsZSBhW2pdIDwgeCBkbyBkZWMoaik7CiAgICAgIGlmIGk8PWogdGhlbgogICAgICAgIGJlZ2luCiAgICAgICAgICBzd2FwKGFbaV0sYVtqXSk7CiAgICAgICAgICBpbmMoaSk7ZGVjKGopOwogICAgICAgIGVuZDsKICAgIHVudGlsIGk+ajsKICAgIGlmIGk8ciB0aGVuIHFzKGkscixhKTsKICAgIGlmIGo+bCB0aGVuIHFzKGwsaixhKTsKICBlbmQ7CnByb2NlZHVyZSBkZnModSA6IGxvbmdpbnQpOwogIHZhciBpLHYscyA6IGxvbmdpbnQ7CiAgYmVnaW4KICAgIGN4W3VdIDo9IGZhbHNlOwogICAgaWYgZGVnW3VdIDw9IDEgdGhlbiBiZWdpbiBmW3VdIDo9IDE7IGV4aXQ7IGVuZDsKICAgIGZvciB2IDo9IDEgdG8gbiBkbwogICAgICBpZiBhW3Usdl0gdGhlbgogICAgICBpZiBjeFt2XSB0aGVuCiAgICAgICAgYmVnaW4KICAgICAgICAgIGRmcyh2KTsKICAgICAgICAgIHB1c2godSxmW3ZdKTsKICAgICAgICBlbmQ7CiAgICBxcygxLHRvcFt1XSxzdFt1XSk7CiAgICBzIDo9IHN0W3UsMV07CiAgICB2IDo9IHN0W3UsMV0tMTsKICAgIGZvciBpOj0gMiB0byB0b3BbdV0gZG8KICAgICAgaWYgdiA8IHN0W3UsaV0gdGhlbgogICAgICBiZWdpbgogICAgICAgIHMgOj0gcyArIChzdFt1LGldLXYpOwogICAgICAgIHYgOj0gdiArIChzdFt1LGldLXYpOwogICAgICAgIHYgOj0gdiAtIDE7CiAgICAgIGVuZCBlbHNlIHYgOj0gdi0xOwogICAgZlt1XSA6PSBzOwogIGVuZDsKcHJvY2VkdXJlIHByb2Nlc3M7CiAgYmVnaW4KICAgIGZpbGxjaGFyKGN4LHNpemVvZihjeCksdHJ1ZSk7CiAgICBkZnMoMSk7CiAgZW5kOwpwcm9jZWR1cmUgcHJpbnQ7CiAgYmVnaW4KICAgIGFzc2lnbihvdXRwdXQsZm8pO3Jld3JpdGUob3V0cHV0KTsKICAgIHdyaXRlbG4oZlsxXSk7CiAgICBjbG9zZShvdXRwdXQpOwogIGVuZDsKYmVnaW4KICBlbnRlcjsKICBwcm9jZXNzOwogIHByaW50OwplbmQu