#include <fstream>
using namespace std;
ifstream cin("pscpld.in");
ofstream cout("pscpld.out");
int pi[2000008];
int main()
{
string s;
cin >> s;
string m = "&";
for (int i = 0; i < s.size(); ++i) {
m = m + s[i] + '&';
}
int ans(1), p = 1;
pi[1] = 2;
pi[0] = 1;
cout << "2 ";
for (int i = 2; i < m.size() - 1; ++i) {
if (p + pi[p] > i) {
int sim = 2 * p - i;
pi[i] = min(pi[sim], p + pi[p] - i);
}
while (pi[i] <= i && pi[i] + i < m.size() && m[pi[i] + i] == m[i - pi[i]]) {
++pi[i];
p = i;
}
ans += pi[i] / 2;
}
cout << ans;
return 0;
}