#P2672. Hotkeys

Hotkeys

描述
TomTom 正在为测试编辑器设计一个菜单系统。菜单由一些菜单项组成,每个菜单项可以递归地包含一些子菜单项(一个子菜单项也是一个菜单项),例如,菜单项 File“File” 可能包含子菜单项 Open”、“Save”、“SaveAs”、“RecentFiles”、“Send“Open”、“Save”、“Save As”、“Recent Files”、“Send”Exit“Exit”,而 “Recent Files” 可能包含 “Setting File”,“Send” 可能包含 Mail“Mail”Fax “Fax”。一个 menuitemmenuitem 可能包含多个单词,并确认每个单词中的第一个字母是大写字母,其他字母都是小写字母。

每个 menuitemmenuitem 都与一个热键相关联,如果热键更容易记住,则菜单更易于使用。因此,TomTom 希望热键在 menuitemmenuitem 中只能是大写字母,即每个单词中的第一个字母。以 SaveAs“Save As” 为例,热键只能是 S'S'A'A'。很明显,菜单项的子菜单项不能与同一个热键关联,例如,“保存”和“另存为”不能同时使用热键S“S”,因为它们都是菜单“文件”的子菜单项。

由于 TomTom 认为按同一个键两次不方便,因此他要求 menuitemmenuitem 及其子菜单项的热键不能重复。在前面的示例中,File“File(文件)RecentFiles“Recent Files(最近使用的文件)不能使用相同的热键F“F”。但是这个规则只影响 menuitemmenuitem 和它的直接子menuitem menuitem,所以File “File”SettingFile“Setting File” 可以使用相同的热键 F'F'

给定菜单描述后,TomTom 想知道是否可以为每个菜单项分配一个热键。

输入
菜单描述如下:menuitemmenuitem 占据一行,并且 menuitemmenuitem 的子 menuitemsmenuitems 列在此菜单项的正下方。子菜单项的描述以第一个子菜单项之前的< “<” 开头,在最后一个子菜单项之后以 >“>” 结尾。<“<”>“>” 将单独占一整行。由于我们可能认为顶层的菜单项属于全局菜单,因此在输入的开头总是有一个 <“<”,在输入的末尾总是有一个> “>”

每个menuitem menuitem 可以包含单词和分隔它们的空格。menuitemmenuitem 名称的长度少于 5050 个字符。

菜单项不超过 1000010000 个。确认所有输入都是上述合法的菜单项。

输出
如果可以为每个菜单项分配一个热键,则单行包含 GotIt!”“Got It!”;否则,输出 NoSolution“No Solution”

输入数据 1

<
File
<
Open
Save
Save As
Recent Files
Send
<
Mail
Fax
>
Exit
>
Edit
<
Find
Replace
Replace All
>
>

输出数据 1

No Solution

来源
北京 20052005 预选赛