Bythony 喜欢玩耍。在他的房间里,他排列了一行 $n$ 个彩色积木。每个积木要么是白色、灰色,要么是黑色。Bythony 想要在积木行中选取一个连续的片段,并用其中的积木建造塔。
Bythony 打算建造三座单色塔:一座由白色积木组成,一座由灰色积木组成,一座由黑色积木组成。注意,一座塔可以由零个积木组成,例如,如果片段中没有某种颜色的积木。Bythony 希望满足以下两个条件:第一,塔的高度(即它们所包含的积木数量)必须各不相同。第二,Bythony 希望利用他所选片段中的所有积木。请编写一个程序,帮助他确定满足这些要求的最长连续积木片段的长度。
输入格式
输入的第一行包含一个整数 $n$,表示积木的数量。下一行包含一个长度为 $n$ 的字符串 $a_1a_2 \dots a_n$,其中每个 $a_i$ 是字符 B、S 或 C 中的一个,表示行中第 $i$ 个积木的颜色:B 代表白色(biały),S 代表灰色(szary),C 代表黑色(czarny)。
输出格式
输出的第一行也是唯一一行,应包含单词 NIE(波兰语中的“不”),如果不存在满足规则的片段;或者输出一个整数,等于满足该构造要求的最长片段的积木数量。
样例
输入格式 1
9 CBBSSBCSC
输出格式 1
6
说明
Bythony 可以选择一个包含 6 个积木的片段:BSSBCS,从中他可以建造一座 3 个积木高的灰色塔、一座 2 个积木高的白色塔和一座 1 个积木高的黑色塔。
输入格式 2
5 BBBBC
输出格式 2
5
说明
Bythony 可以利用所有积木,建造一座 4 个积木高的白色塔、一座 1 个积木高的黑色塔和一座 0 个积木高的灰色塔。
样例评分测试
- 1ocen: $n = 2500$,积木排列为:$B^{1248}CSB^{1250}$(字符串 $B^k$ 表示字符 B 重复 $k$ 次);Bythony 可以选择的最长片段已下划线标出。
- 2ocen: $n = 1\,000\,000$,积木排列为周期性字符串:BSCBSCBSC...BSCBSCB;答案为 NIE。
子任务
测试集由以下子任务组成。每个子任务内可能包含多个测试点。
| 子任务 | 数据范围 | 分值 |
|---|---|---|
| 1 | $n \le 2500$ | 30 |
| 2 | $n \le 1\,000\,000$ | 70 |