#include <iostream>
#include <vector>
using namespace std;
int min_cyc(string s)
{
int p = 0;
s += s;
vector<int> f(s.size(), -1);
for (int l = 1, r = 1; r < s.size(); ++r)
{
for (l = f[r - p - 1]; l != -1 && s[p + l + 1] != s[r];l = f[l] )
if (s[l + p + 1] > s[r])
p = r - l - 1;
if (l == -1 && s[p + l + 1] != s[r])
{
if (s[p + l + 1] > s[r])
p = r;
f[r - p] = -1;
}
else
{
f[r - p] = l + 1;
}
}
return p;
}
int main()
{
string s;
cin >> s;
cout << min_cyc(s);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtaW5fY3ljKHN0cmluZyBzKQp7CiAgICBpbnQgcCA9IDA7CiAgICBzICs9IHM7CgogICAgdmVjdG9yPGludD4gZihzLnNpemUoKSwgLTEpOwogICAgZm9yIChpbnQgbCA9IDEsIHIgPSAxOyByIDwgcy5zaXplKCk7ICsrcikgCiAgICB7CiAgICAgICAgZm9yIChsID0gZltyIC0gcCAtIDFdOyAgICAgbCAhPSAtMSAmJiBzW3AgKyBsICsgMV0gIT0gc1tyXTtsID0gZltsXSApCiAgICAgICAgICAgIGlmIChzW2wgKyBwICsgMV0gPiBzW3JdKQogICAgICAgICAgICAgICAgcCA9IHIgLSBsIC0gMTsKCiAgICAgICAgaWYgKGwgPT0gLTEgJiYgc1twICsgbCArIDFdICE9IHNbcl0pCiAgICAgICAgewogICAgICAgICAgICBpZiAoc1twICsgbCArIDFdID4gc1tyXSkKICAgICAgICAgICAgICAgIHAgPSByOwoKICAgICAgICAgICAgZltyIC0gcF0gPSAtMTsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgZltyIC0gcF0gPSBsICsgMTsKICAgICAgICB9CiAgICB9CiAgICAKICAgIHJldHVybiBwOwp9CiAgICAKaW50IG1haW4oKQp7CiAgICBzdHJpbmcgczsKICAgIGNpbiA+PiBzOwogICAgY291dCA8PCBtaW5fY3ljKHMpOwogICAgcmV0dXJuIDA7Cn0K