#include<bits/stdc++.h>
using namespace std;
const int N = 1e4 + 10;
int p[N];
void manacher(string s,int &st,int &x)
{
memset(p,0,sizeof(p));
string fn;
fn += '$';
int len = s.length();
for(int i = 0;i < len;i++)
{
fn += '#';
fn += s[i];
}
fn += '#';
cout << s << endl << fn << endl;
int id = 0,mx = 0;
len = fn.length();
for(int i = 1;i < len;i++)
{
if(i < mx) p[i] = min(mx - i,p[2*id - i]);
else p[i] = 1;
while(i + p[i] < len && fn[i-p[i]] == fn[i + p[i]]) p[i]++;
if(mx < p[i] + i)
{
id = i;
mx = i + p[i];
}
if(x < p[i])
{
x = p[i];
st = i;
}
}
for(int i = 0;i < len;i++)
cout << fn[i] << " ";
puts("");
for(int i = 0;i < len;i++)
cout << p[i] << " ";
puts("");
}
int main()
{
string s;
while(cin >> s)
{
int st,len = 0;
manacher(s,st,len);
len--;
st /= 2;
st -= 1;
st -= (len/2);
int up = st + len;
cout << st << " " << len << endl;
for(int i = st;i < up;i++)
cout << s[i];
cout << endl;
}
return 0;
}