为了庆祝今年“算法克星”(Pogromcy Algorytmów)的圆满结束,负责比赛顺利进行的四位 Krzyśki(KC、KD、KO、KS)决定跳起欢快的戈尔迪之舞(Gordian dance)。戈尔迪之舞是一种传统的拜托尼亚(Bajtocja)舞蹈,由两对舞者共同表演。起初,舞者们站在正方形 $ABCD$ 的四个顶点上,分为两对:$A$ - $B$ 和 $C$ - $D$。每对舞者之间拉着一根绳子。因此,在开始时,两根绳子都是水平拉直且相互平行的。
舞蹈由一系列动作组成,每个动作可以是以下两种类型之一:
S:站在点 $B$ 和 $C$ 的舞者交换位置(不松开绳子)。在这个过程中,站在点 $B$ 的舞者将拉着绳子的手举高,在走向点 $C$ 的同时,让从点 $C$ 走向点 $B$ 的舞者从自己身前、手臂下方通过。R:所有舞者在不松开绳子的前提下,顺时针旋转 90 度。即原来站在点 $A$ 的舞者走到点 $B$,站在点 $B$ 的走到点 $C$,站在点 $C$ 的走到点 $D$,站在点 $D$ 的走到点 $A$。
在舞蹈过程中,绳子会缠绕在一起。然而,在舞蹈结束时,它们应该被解开,并再次水平拉直且相互平行。此时,舞者们不需要站在他们最初开始时的位置。这种舞蹈需要舞者有很高的技巧,因为在舞蹈过程中绳子可能会变得非常混乱,而能够将它们解开并重新水平平行拉直的动作序列可能很难想到。
Krzyśki 们是初学者。你的任务是编写一个程序,帮助他们完成已经开始的舞蹈。根据已经执行的动作序列,你的程序需要计算出能够结束舞蹈(即解开绳子并使其重新水平平行拉直)所需的最少动作次数。
例如,在执行动作序列 SS 后,我们得到以下状态:
能够结束舞蹈的最短动作序列长度为 5,即 RSRSS。
编写一个程序:
- 从标准输入读取已执行的舞蹈动作序列,
- 计算出将绳子解开并使其重新水平平行拉直所需的最少动作次数(在执行完这些动作后,舞者不需要回到初始位置),
- 将结果输出到标准输出。
输入格式
第一行包含一个正整数 $n$,表示已执行的动作次数,$1 \le n \le 1\,000\,000$。
第二行包含一个长度为 $n$ 的字符串,由字母 S 和/或 R 组成。该字符串中的连续字母依次表示舞蹈中已执行的动作。
输出格式
输出到标准输出的第一行,也是唯一的一行,包含一个整数——将绳子解开并使其重新水平平行拉直所需的最少动作(S 和/或 R)次数。
样例
输入样例 1
2 SS
输出样例 1
5