当地一家广播电台发生了硬件故障,导致同一个播放列表陷入了循环播放。配备了音高检测软件后,你需要确定播放列表中歌曲数量的下界。
你已经成功录制了整个循环,从任意一点开始,并在同一点结束。音高检测软件的输出由 $N$ 个检测到的音符组成,按它们被播放的顺序排列。
每个音符有 12 种名称之一:Do, Do#, Re, Re#, Mi, Fa, Fa#, Sol, Sol#, La, La#, 或 Si。列表中任意两个连续音符之间的间隔称为半音。相隔 12 个半音的音符名称相同;因此,Si 后面的音符称为 Do,依此类推。
每首歌由两个或更多的音符组成,且所有音符都属于同一个大调音阶(major scale)。
所有大调音阶都由其根音(root note)定义,并包含八个音符,其中七个具有不同的名称。从根音到音阶中每个音符的音高偏移量分别为 0, 2, 4, 5, 7, 9, 11 和 12 个半音(第一个和最后一个音符与根音相同)。可以基于任何根音构建大调音阶。例如:
| Root +0 | Root +2 | Root +4 | Root +5 | Root +7 | Root +9 | Root +11 | Root +12 | |
|---|---|---|---|---|---|---|---|---|
| Do major | Do | Re | Mi | Fa | Sol | La | Si | Do |
| Do# major | Do# | Re# | Fa | Fa# | Sol# | La# | Do | Do# |
| Re major | Re | Mi | Fa# | Sol | La | Si | Do# | Re |
| Re# major | Re# | Fa | Sol | Sol# | La# | Do | Re | Re# |
| Mi major | Mi | Fa# | Sol# | La | Si | Do# | Re# | Mi |
……以此类推……
你的任务是确定 $M$,即播放列表包含的最少歌曲数量。
输入格式
输入文件的第一行包含 $N \le 10\,000\,000$,表示检测到的音符数量。接下来的 $N$ 行每行包含一个音符。所有音符的格式如前所述(即首字母大写,其余字母小写)。
输出格式
输出必须包含 $M$。
样例
样例输入 1
8 La Si Do Si La Sol Fa Mi
样例输出 1
1
样例输入 2
9 Mi Si Sol Do Re Fa# Fa Do La
样例输出 2
2