Скажем, что последовательность строк t1, ..., tk является путешествием длины k, если для всех i > 1 ti является подстрокой ti - 1 строго меньшей длины. Например, {ab, b} является путешествием, а {ab, c} или {a, a} — нет.
Определим путешествие по строке s как путешествие t1, ..., tk, все строки которого могут быть вложены в s так, чтобы существовали (возможно, пустые) строки u1, ..., uk + 1, такие, что s = u1 t1 u2 t2... uk tk uk + 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}.
Название |
---|