#L4970. 「POI2015 R2」三座塔 Three towers

「POI2015 R2」三座塔 Three towers

题目描述

题目译自 XXII Olimpiada Informatyczna — II etap Trzy Wieże

Bitoni 爱玩积木。他在房间里将 nn 块积木排成一列,每块积木是白色、灰色或黑色三种颜色之一。Bitoni 想挑选一段连续的积木,从中搭建塔楼。

每座塔楼只能由单一颜色的积木组成,且不能有两座塔楼颜色相同(因此最多建三座塔)。此外,每座塔楼的高度(即积木数量)必须互不相同。Bitoni 必须用完所有选中的积木。请你帮助Bitoni,编写程序找出满足他要求的最长连续积木段。


输入格式

第一行包含一个整数 nn (1n10000001 \leq n \leq 1000000),表示积木数量。

第二行包含一个由 nn 个字母 a1a2ana_1 a_2 \ldots a_n 组成的字符串,其中 aia_iB\texttt{B}S\texttt{S}C\texttt{C},分别表示第 ii 块积木的颜色(B\texttt{B} 为白色,S\texttt{S} 为灰色,C\texttt{C} 为黑色)。


输出格式

输出一行,一个整数,表示满足 Bitoni 要求的最长连续积木段的积木数量。


样例

输入

9
CBBSSBCSC

输出

6

解释
Bitoni 可选择 66 块积木的片段 BSSBCS\texttt{BSSBCS},搭建一座 33 块的灰色塔、一座 22 块的白色塔和一座 11 块的黑色塔。


附加样例

  • n=2500n=2500,积木序列为 $\texttt{B}^{1248} \texttt{C}\underline{\texttt{SB}^{1250}}$(Bk\texttt{B}^k 表示 kk 个 B),最长可选片段已标示;
  • n=1000000n=1000000,积木序列为周期性 BSCBSCBSCBSC\texttt{BSCBSCBSC}\ldots\texttt{BSC},Bitoni 只能用 11 块积木建一座塔。

数据范围与提示

对于 30%30\% 的数据,n2500n \leq 2500