e-olymp
Задачі

Найбільша грань

Найбільша грань

Гранню (border, verge, brink) br рядка S називається довільний власний префікс цього рядка, рівний суфіксу S.

Рядок S = abaababaabaab має дві грані (не порожні) - ab та abaab. Радок S = abaabaab також має дві грані - ab та abaab, але друга грань перекривається. Рядок довжини n з символу, що повторюється, наприклад aaaaaaaa (або a8), має n - 1 грань. Для S = a8 це грані: a, aa, aaa, aaaa, aaaaa, aaaaaa, aaaaaaa.

Поняття "власний префікс" виключає грань, яка співпадає з самим рядком.

Довжина грані - це кількість символів у ній.

Природним узагальненням поняття "грань" є поняття "найбільша грань" - це найбільший (за кількістю символів) власний префікс рядка, рівний його суфіксу.

Вхідні дані

Дано рядок S (|S| ≤ 106).

Вихідні дані

Виведіть довжину найбільшої грані.

Ліміт часу 1 секунда
Ліміт використання пам'яті 128 MiB
Вхідні дані #1
abaabaab
Вихідні дані #1
5