int main()
{
int i , j , Max ;
int start , end , cnt ;
memset( head , -1 , sizeof( head ) ) ;
Count = 0 , cnt = 1 ;
while( scanf( "%d" , & start ) && start )
{
memset( head , -1 , sizeof( head ) ) ;
Count = 0 ;
Max = 0 ;
if( start > Max ) Max = start ;
scanf( "%d" , & end ) ;
if( end > Max ) Max = end ;
addedge( start , end ) ;
addedge( end , start ) ;
while( scanf( "%d" , & start ) && start )
{
if( start > Max ) Max = start ;
scanf( "%d" , & end ) ;
if( end > Max ) Max = end ;
addedge( start , end ) ;
addedge( end , start ) ;
}
for( i = 2 ; i <= Max ; i ++ ) ans[i] = 1 ;
ans = 0 ;
tarjan( Max ) ;
printf( "Network #%d\n" , cnt ) ;
int flag = 0 ;
for( i = 1 ; i <= Max ; i ++ )
if( ans[i] > 1 )
{
printf( " SPF node %d leaves %d subnets\n" , i , ans[i] ) ;
flag = 1 ;
}
if( !flag ) printf( " No SPF nodes\n" ) ;
printf( "\n" ) ;
cnt ++ ;
}
return 0 ;