string str;
unordered_set<string> strSet;
cin >> str;
for(int pos = 0; pos < str.size(); ++pos)
for(int len = 1; len <= str.size() / 2; ++len)
{
if(str.substr(pos, len) == str.substr(pos + len, len))
{
strSet.insert(str.substr(pos, len));
}
}
cout << strSet.size() << endl;