def smallest_palindrome(s):
# Count the frequency of each character
freq = {}
for char in s:
freq[char] = freq.get(char, 0) + 1
# Identify characters with odd frequency
odd_freq_chars = [char for char, count in freq.items() if count % 2 != 0]
# Construct the palindrome
palindrome = ''
for char, count in freq.items():
if count % 2 == 0:
palindrome += char * (count // 2)
# Sort odd frequency characters
odd_freq_chars.sort()
# Insert characters with odd frequency at the beginning and end of the palindrome
for char in odd_freq_chars:
palindrome = char * (freq[char] // 2) + palindrome + char * (freq[char] // 2)
return palindrome
# Input
s = input()
# Output
print(smallest_palindrome(s))
ZGVmIHNtYWxsZXN0X3BhbGluZHJvbWUocyk6CiAgICAjIENvdW50IHRoZSBmcmVxdWVuY3kgb2YgZWFjaCBjaGFyYWN0ZXIKICAgIGZyZXEgPSB7fQogICAgZm9yIGNoYXIgaW4gczoKICAgICAgICBmcmVxW2NoYXJdID0gZnJlcS5nZXQoY2hhciwgMCkgKyAxCiAgICAKICAgICMgSWRlbnRpZnkgY2hhcmFjdGVycyB3aXRoIG9kZCBmcmVxdWVuY3kKICAgIG9kZF9mcmVxX2NoYXJzID0gW2NoYXIgZm9yIGNoYXIsIGNvdW50IGluIGZyZXEuaXRlbXMoKSBpZiBjb3VudCAlIDIgIT0gMF0KICAgIAogICAgIyBDb25zdHJ1Y3QgdGhlIHBhbGluZHJvbWUKICAgIHBhbGluZHJvbWUgPSAnJwogICAgZm9yIGNoYXIsIGNvdW50IGluIGZyZXEuaXRlbXMoKToKICAgICAgICBpZiBjb3VudCAlIDIgPT0gMDoKICAgICAgICAgICAgcGFsaW5kcm9tZSArPSBjaGFyICogKGNvdW50IC8vIDIpCiAgICAKICAgICMgU29ydCBvZGQgZnJlcXVlbmN5IGNoYXJhY3RlcnMKICAgIG9kZF9mcmVxX2NoYXJzLnNvcnQoKQogICAgCiAgICAjIEluc2VydCBjaGFyYWN0ZXJzIHdpdGggb2RkIGZyZXF1ZW5jeSBhdCB0aGUgYmVnaW5uaW5nIGFuZCBlbmQgb2YgdGhlIHBhbGluZHJvbWUKICAgIGZvciBjaGFyIGluIG9kZF9mcmVxX2NoYXJzOgogICAgICAgIHBhbGluZHJvbWUgPSBjaGFyICogKGZyZXFbY2hhcl0gLy8gMikgKyBwYWxpbmRyb21lICsgY2hhciAqIChmcmVxW2NoYXJdIC8vIDIpCiAgICAKICAgIHJldHVybiBwYWxpbmRyb21lCgojIElucHV0CnMgPSBpbnB1dCgpCgojIE91dHB1dApwcmludChzbWFsbGVzdF9wYWxpbmRyb21lKHMpKQo=