Найдовший бордюр#1307

Найдовший бордюр

1 секунда
128 мегабайтів
Дуже легка

Бордюр (межа, край) рядка — це будь-який правильний префікс рядка, який дорівнює його суфіксу.

Наприклад, рядок S = abaababaabaab має два непорожніх бордюри: та .

Рядок S = abaabaab також має два таких бордюри — і , причому другий бордюр перекривається.

Рядок довжини , що складається з одного повторюваного символу (наприклад, або a^{8}), має n-1 бордюр. Для S = a^{8} ці бордюри такі: , , , , , , .

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

Довжина бордюру — це кількість символів у ньому.

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

Вхідні дані

Один рядок S~(|S| \le 10^{6}).

Вихідні дані

Виведіть довжину найдовшого бордюру рядка .

Приклади

Приклад 1

Loading
Loading