F. Путешествие по строке
ограничение по времени на тест
5 секунд
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Скажем, что последовательность строк t1, ..., tk является путешествием длины k, если для всех i > 1 ti является подстрокой ti - 1 строго меньшей длины. Например, {ab, b} является путешествием, а {ab, c} или {a, a} — нет.

Определим путешествие по строке s как путешествие t1, ..., tk, все строки которого могут быть вложены в s так, чтобы существовали (возможно, пустые) строки u1, ..., uk + 1, такие, что s = u1t1u2t2... uktkuk + 1. К примеру, {ab, b} является путешествием по строке для abb, но не для bab, так как соответствующие подстроки расположены справа налево.

Назовём длиной путешествия количество строк, из которых оно состоит. Определите максимально возможную длину путешествия по заданной строке s.

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

В первой строке задано целое число n (1 ≤ n ≤ 500 000) — длина строки s.

Во второй строке содержится строка s, состоящая из n строчных английских букв.

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

Выведите одно число — наибольшую длину путешествия по строке s.

Примеры
Входные данные
7
abcdbcc
Выходные данные
3
Входные данные
4
bbcb
Выходные данные
2
Примечание

В первом примере путешествием по строке наибольшей длины является {abcd, bc, c}.

Во втором примере подходящим вариантом будет {bb, b}.