描述

期末考试结束啦~ 小Cat Rainbow和小昊爷 HeHao 等若干童鞋去KTV唱歌。

包间中有一台点歌机,起初播放列表里什么也没有。由于KTV包间只有2个话筒,所以随时会有1~2名童鞋点某一首歌。新点的歌会被加入到播放列表的末尾。轮到这首歌播放时,点歌的1~2名童鞋会一起演唱这首歌。一旦某首歌开始播放,歌曲就会从播放列表中消失。点歌机还提供一个置顶功能,可以随时把某首歌调整到播放列表的顶端。小昊爷想随时关注一下还有几首歌就轮到他唱了。在所有童鞋的演唱结束后,他还想了解一下每位歌手的歌曲被点唱的次数。

输入格式

输入包含若干行,每个非空行代表一个操作,以EOF结尾。每个操作是下列几种之一:

  • Add Song Singers | Students | 向播放列表结尾添加名为Song的歌曲,原唱是Singers,点歌的童鞋是Students,Singers包含1~2个歌手名字,Students包含1~2个童鞋名字,歌曲名称、歌手名字、童鞋名字都由英文字母构成,字符串之间由若干个空格隔开。如果播放列表中已有名为Song的歌曲,则本行数据应该被忽略(视为该童鞋没有点过这首歌)。
  • Play 播放当前播放列表中顶端的歌曲,并把该歌曲从播放列表中移除。如果播放列表中没有歌曲,则本行数据应该被忽略。
  • Top Song 把名为Song的歌曲置顶。如果播放列表中没有名为Song的歌曲,则本行数据应该被忽略。
  • Ask 询问播放列表中由小昊爷(名字为HeHao)点的最靠前的歌曲是第几首,以及该歌曲的名称是什么。

输出格式

  • 对于每个未被忽略的Play操作,在新的一行中输出 "字符串" 表示开始播放的歌曲名称。
  • 对于每个Ask操作,在新的一行中输出 "整数 字符串" 表示答案。若不存在输出"0"。

在所有操作结束后,按照被点歌的次数从大到小为第一关键字、名字字典序递增为第二关键字,输出歌手的名字和被点歌(Add)的次数。每行一个,名字和次数之间用一个空格隔开。

样例输入

Add TaShuo LinJunjie | Seter VNB |
Play
Add YanHuaYiLeng ZhouJielun | Zanoes Yzx |
Add ZhengFu NaYing | Rainbow VNB |
Add XiaoQingGe SuDalv | VNB Cr |
Ask
Add XiangYueJiuBa NaYing WangFei | HeHao Rainbow |
Play
Add JuHuaTai ZhouJielun | Zanoes |
Top JuHuaTai
Add TimeAfterTime KurakiMai | Rainbow |
Play
Play
Add YinWeiAiQing WangFei ChenYixun | Rainbow HeHao |
Ask
Top YinWeiAiQing
Ask
Play
Add QianShanWanShui ZhouJielun | Zanoes Rainbow |
Add YeXuMingTian ZhangHuimei | VNB Seter |
Play
Add PaoMo DengZiqi | HeHao VNB |
Ask
Top PaoMo
Add JiangNan LinJunjie | Zanoes Seter |
Ask

样例输出

TaShuo
0
YanHuaYiLeng
JuHuaTai
ZhengFu
2 XiangYueJiuBa
1 YinWeiAiQing
YinWeiAiQing
XiaoQingGe
1 XiangYueJiuBa
1 PaoMo
ZhouJielun 3
LinJunjie 2
NaYing 2
WangFei 2
ChenYixun 1
DengZiqi 1
KurakiMai 1
SuDalv 1
ZhangHuimei 1

数据范围与约定

  • 输入不超过100行,所有字符串由大小写英文字母构成,长度不超过20
  • 提示:建议C/C++选手使用scanf %s读入。