C#中类的继承性

Time Limit: 1000 ms Memory Limit: 65536 KiB

Problem Description

在C#中,类的继承遵循以下原则。
(1)派生类只能从一个类中继承,即单继承。
(2)类的继承是可以传递的,例如:假设类C继承于类B,类B又继承于类A,那么类A是类C的祖先类。
 
那么现在问题来了,给出一些类的继承关系,求出最多的继承层数。

Input

多组输入。

对于每组输入。

第一行输入一个整数n(1 <= n <= 50000)

接下来的n行,每行只会符合下面两种格式:

(1) 仅包含一个类名。此时表明此类是基类,即不继承与任何类。

(2) 类名: 类名B。此时表明类A继承于类B

类名仅由小写英文字母且长度 <= 6

数据保证合法。

Output

对于每组数据,输出最多的继承层数。

Sample Input

2
abc
xyz:abc

Sample Output

2

Hint

 

Source

zmx