3672: 挑战

内存限制:256 MB 时间限制:1.000 S
评测方式:文本比较 命题人:外部导入
提交:1 解决:1

题目描述

定义一个游戏,一些规则如下:

1、  一个字符串X被称为字符串Y的同构串当且仅当构成X和Y的字母完全相同(不计次次序),如“baba”与“abab”,“aabb”,“abba”互为同构串。

2、  一个字符串X被称为字符串Y的 子序列当且仅当X可以通过将Y去掉若干个字母而不改变相对顺序获得,如“ac”,“abd”,“abcd”都是“abcd”的子序列。

3、  一个字符串X被称为字符串Y的同构子序列当且仅当存在一个字符串Z,使得X是Z的同构串,Z是Y的子序列。

现在要求把一个给定字符串S从中间分开成m个子串S1,S2,…,Sm,使得S1+S2+…+Sm=X,且对于任意i<m,Si是S[i+1]的同构子序列。

求最大化m。

输入

第一行包含一个整数n,表示字符串的长度。         

第二行为1个长度为n的字符串,仅包含大写字母。

输出

输出仅一行,一个整数,为最多可以分成的块数。

样例输入 复制

6
ABABAB

样例输出 复制

3

提示

对于20%的数据:n <= 10。         

对于50%的数据:n <= 100。        

对于100%的数据:n <= 500。