F. Очередной разворот подстроки
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Вам задана строка $$$s$$$, состоящая только из первых $$$20$$$ строчных букв латинского алфавита ('a', 'b', ..., 't').

Напомним, что подстрокой $$$s[l; r]$$$ строки $$$s$$$ называется строка $$$s_l s_{l + 1} \dots s_r$$$. Например, подстроками «codeforces» являются «code», «force», «f», «for», но не строки «coder» и «top».

Вы можете произвести следующую операцию не более одного раза: выбрать какую-то подстроку $$$s[l; r]$$$ и развернуть ее (то есть строка $$$s_l s_{l + 1} \dots s_r$$$ превращается в $$$s_r s_{r - 1} \dots s_l$$$).

Ваша задача — максимизировать длину максимальной подстроки $$$s$$$, состоящей из различных (то есть уникальных) символов.

Строка состоит из различных символов, если ни один символ этой строки не встречается более одного раза. Например, строки «abcde», «arctg» и «minecraft» состоят из различных символов, а строки «codeforces», «abacaba» не состоят из различных символов.

Входные данные

Единственная строка входных данных содержит одну строку $$$s$$$, состоящую из не более, чем $$$10^6$$$ символов 'a', 'b', ..., 't' (первых $$$20$$$ строчных букв латинского алфавита).

Выходные данные

Выведите одно целое число — максимально возможную длину максимальной подстроки $$$s$$$, состоящей из различных символов, после переворота не более чем одной ее подстроки.

Примеры
Входные данные
abacaba
Выходные данные
3
Входные данные
abcdecdf
Выходные данные
6
Входные данные
aabbcc
Выходные данные
3
Входные данные
abcdeefc
Выходные данные
6