#include<bits/stdc++.h>
#define M 2004
using namespace std;
string a, b;
int dp[M][M];
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
cin >> a;
b = a;
reverse(b.begin(), b.end());
int n = a.size();
a = ' ' + a;
b = ' ' + b;
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= n; j++)
{
if(a[i] == b[j]) dp[i][j] = dp[i - 1][j - 1] + 1;
else dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);
}
}
string ans = "";
int x = dp[n][n];
int m = n;
while(1)
{
if(a[n] == b[m])
{
ans += a[n];
n--;
m--;
}
else
{
if(dp[n][m] == dp[n - 1][m]) n--;
else m--;
}
if(ans.size() == x) break;
}
cout << ans;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBNIDIwMDQKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cmluZyBhLCBiOwppbnQgZHBbTV1bTV07CgppbnQgbWFpbigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBjaW4udGllKDApOyAgICAgY291dC50aWUoMCk7CgogICAgY2luID4+IGE7CiAgICBiID0gYTsKICAgIHJldmVyc2UoYi5iZWdpbigpLCBiLmVuZCgpKTsKICAgIGludCBuID0gYS5zaXplKCk7CiAgICBhID0gJyAnICsgYTsKICAgIGIgPSAnICcgKyBiOwogICAgZm9yKGludCBpID0gMTsgaSA8PSBuOyBpKyspCiAgICB7CiAgICAgICAgZm9yKGludCBqID0gMTsgaiA8PSBuOyBqKyspCiAgICAgICAgewogICAgICAgICAgICBpZihhW2ldID09IGJbal0pICAgZHBbaV1bal0gPSBkcFtpIC0gMV1baiAtIDFdICsgMTsKICAgICAgICAgICAgZWxzZSAgICBkcFtpXVtqXSA9IG1heChkcFtpIC0gMV1bal0sIGRwW2ldW2ogLSAxXSk7CiAgICAgICAgfQogICAgfQogICAgc3RyaW5nIGFucyA9ICIiOwogICAgaW50IHggPSBkcFtuXVtuXTsKICAgIGludCBtID0gbjsKICAgIHdoaWxlKDEpCiAgICB7CiAgICAgICAgaWYoYVtuXSA9PSBiW21dKQogICAgICAgIHsKICAgICAgICAgICAgYW5zICs9IGFbbl07CiAgICAgICAgICAgIG4tLTsKICAgICAgICAgICAgbS0tOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBpZihkcFtuXVttXSA9PSBkcFtuIC0gMV1bbV0pICBuLS07CiAgICAgICAgICAgIGVsc2UgICAgbS0tOwogICAgICAgIH0KICAgICAgICBpZihhbnMuc2l6ZSgpID09IHgpICBicmVhazsKICAgIH0KICAgIGNvdXQgPDwgYW5zOwp9Cg==