my @a = (); 
my @b = ();
my @adj = ();
my @rank = ();
my @visited = ();
$maxdepth = 8;

sub print_adjacent {
	local ($root, $level) = @_;

	if ($level == $maxdepth) {
		return;
	}

	$visited[$root] = 1;
	print "$root : ";
	foreach $x (@{$adj[$root]}) {
		print "$x ";
	} 
	print "\n";

	foreach $x (@{$adj[$root]}) {
		if (!$visited[$x]) {
			print_adjacent($x, $level+1);
		}	
	}
}	
	
while (<>) {
	chomp;
	@a = split /:/, $_;
	@b = split / /, $a[1];
	@{$adj[$a[0]]} = @b;
}	
print_adjacent(1, 0);

