Damian 是一位啤酒杯收藏家。他的收藏品填满了复古木柜中大部分的架子,所有的杯子都陈列在上面。这些杯子品牌各异。收藏品中经常会出现多个相同品牌的杯子。
Damian 收藏架上的杯子总是排成一行,且具有对称性。具体来说,这种对称性意味着从左往右看和从右往左看,这一行杯子的品牌序列是完全相同的。柜子里还有一个空架子,Damian 正在寻找机会用一套新的杯子将其填满。
广为人知的 Mastodon 酿酒厂(以其 Woolly Mammoth 啤酒而闻名)每年都会举办所谓的“啤酒季”。啤酒季的参与者每天都要进行酿酒活动,并会获得一个特殊的收藏杯作为奖励。啤酒季的每一天都对应一个特定的杯子品牌。整个啤酒季每一天的杯子品牌都是预先已知的,某些品牌可能会在啤酒季中多次出现。
参与者可以订阅整个啤酒季,也可以只订阅其中的一部分。然而,他或她参与的所有天数必须是一个连续的序列,参与者不能在离开啤酒季后,又在缺席几天后重新回来。
Damian 很想参加这个啤酒季。他决定,他带回家的那套杯子必须适合他的陈列方式,且无需进行任何增减,同时这套杯子的大小应尽可能大。
给定酿酒厂在啤酒季每一天提供的杯子品牌列表,请找出通过订阅啤酒季中某一段连续的时间,所能获得的适合 Damian 陈列的最大杯子集合的大小。
输入格式
第一行包含一个整数 $N$ ($1 < N \le 300\,000$),表示啤酒季的天数。下一行包含 $N$ 个字符,表示啤酒季中每天提供的所有啤酒杯品牌。列表按从啤酒季的第一天到最后一天自然排序。每个品牌由一个从 'a' 到 't' 的小写字母编码。列表中不包含空格。
输出格式
输出一个整数,表示 Damian 可以从啤酒季中带回家,且无需修改即可直接用于陈列的最大杯子集合的大小。
样例
输入 1
6 abcabc
输出 1
6
输入 2
20 ghjahjghsajdjhlfslja
输出 2
7
输入 3
12 aabbccddabcd
输出 3
9