Гранню рядка ~Т~ назвемо власний префікс, який рівний суфіксу
Наприклад, рядок ~T = abaababaabaab~ має дві не пусті грані – ~ab~ i ~abaab~ . Рядок ~T = abaabaab~ також має дві не пусті грані – ~ab~ i ~abaab~ , але друга грань перекриває свій префікс. Рядок із однакових символів має ~n-1~ граней, наприклад ~T = aaaaaaaa~ має такі грані: ~a, aa, aaa, aaaa, aaaaa, aaaaaa, aaaaaaa~. Довжина грані - це кількість символів у ній. Серед усіх граней знайдеться найбільша грань: - найбільший власний префікс, рівний суфіксу. Необхідно визначити найбільшу грань заданого рядка ~Т~.
Формат вхідних даних
Єдиний рядок вхідного стандартного потоку містить рядок ~Т~ ~(1 ≤ size(Т) ≤ 10^5)~- усі символи якого - це літери латиниці.
Формат вихідних даних
У єдиний рядок вихідного стандартного потоку вивести одне число – довжину найбільшої грані.
Приклад вхідних даних
abaabaab
Приклад вихідних даних
5
Коментарі