#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
getline(cin, s);
int max = 0; // Длина наибольшей грани
for(int i = 1; i < s.length() && s.length() - i > max; i++) {
int j = 0;
/*
Перебираем различные длины префиксов (суффиксов), пока не дойдем до длины 1 и пока можем встретить грань, длиннее хранящейся.
i - первый символ очередного суффикса
j - длина текущей грани и первый символ очередного префикса
*/
while(j < s.length() - i && s.at(j) == s.at(i + j)) // Накапливаем длину, пока символы префикса и суффикса совпадают
j++;
if(j > max) // Если длина текущей грани больше хранящейся, обновляем максимум
max = j;
}
cout << max;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CglzdHJpbmcgczsKCWdldGxpbmUoY2luLCBzKTsKCWludCBtYXggPSAwOwkvLyDQlNC70LjQvdCwINC90LDQuNCx0L7Qu9GM0YjQtdC5INCz0YDQsNC90LgKCWZvcihpbnQgaSA9IDE7IGkgPCBzLmxlbmd0aCgpICYmIHMubGVuZ3RoKCkgLSBpID4gbWF4OyBpKyspIHsJCgkJaW50IGogPSAwOwoJCS8qCgkJ0J/QtdGA0LXQsdC40YDQsNC10Lwg0YDQsNC30LvQuNGH0L3Ri9C1INC00LvQuNC90Ysg0L/RgNC10YTQuNC60YHQvtCyICjRgdGD0YTRhNC40LrRgdC+0LIpLCDQv9C+0LrQsCDQvdC1INC00L7QudC00LXQvCDQtNC+INC00LvQuNC90YsgMSDQuCDQv9C+0LrQsCDQvNC+0LbQtdC8INCy0YHRgtGA0LXRgtC40YLRjCDQs9GA0LDQvdGMLCDQtNC70LjQvdC90LXQtSDRhdGA0LDQvdGP0YnQtdC50YHRjy4KCQlpIC0g0L/QtdGA0LLRi9C5INGB0LjQvNCy0L7QuyDQvtGH0LXRgNC10LTQvdC+0LPQviDRgdGD0YTRhNC40LrRgdCwCgkJaiAtINC00LvQuNC90LAg0YLQtdC60YPRidC10Lkg0LPRgNCw0L3QuCDQuCDQv9C10YDQstGL0Lkg0YHQuNC80LLQvtC7INC+0YfQtdGA0LXQtNC90L7Qs9C+INC/0YDQtdGE0LjQutGB0LAKCQkqLwoJCXdoaWxlKGogPCBzLmxlbmd0aCgpIC0gaSAmJiBzLmF0KGopID09IHMuYXQoaSArIGopKQkvLyDQndCw0LrQsNC/0LvQuNCy0LDQtdC8INC00LvQuNC90YMsINC/0L7QutCwINGB0LjQvNCy0L7Qu9GLINC/0YDQtdGE0LjQutGB0LAg0Lgg0YHRg9GE0YTQuNC60YHQsCDRgdC+0LLQv9Cw0LTQsNGO0YIKCQkJaisrOwoJCWlmKGogPiBtYXgpCS8vINCV0YHQu9C4INC00LvQuNC90LAg0YLQtdC60YPRidC10Lkg0LPRgNCw0L3QuCDQsdC+0LvRjNGI0LUg0YXRgNCw0L3Rj9GJ0LXQudGB0Y8sINC+0LHQvdC+0LLQu9GP0LXQvCDQvNCw0LrRgdC40LzRg9C8CgkJCW1heCA9IGo7Cgl9Cgljb3V0IDw8IG1heDsKCXJldHVybiAwOwp9