#include <bits/stdc++.h>
using namespace std;
bool compare(const pair<int, int> &i, const pair<int, int> &j) {
  return i.second > j.second;
}
int n, d;
vector<pair<long long, long long>> a;
long long p(long long a, long long b) {
  long long x = 1, y = a;
  while (b > 0) {
    if (b % 2 == 1) {
      x = (x * y) % 998244353;
    }
    y = (y * y) % 998244353;
    b /= 2;
  }
  return x % 998244353;
}
long long inv(long long a) { return p(a, 998244353 - 2); }
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  string s;
  cin >> s;
  map<char, int> m;
  vector<char> v;
  for (int i = 0; i < s.length(); i++) {
    m[s[i]]++;
  }
  for (auto x : m)
    if (x.second % 2) v.push_back(x.first);
  for (int i = v.size() - 1, j = 0; i > j; i--, j++) {
    if (i <= j) break;
    m[v[j]]++, m[v[i]]--;
  }
  string str = "";
  char flag = '0';
  for (auto x : m) {
    if (!x.second) continue;
    if (x.second % 2) flag = x.first;
    for (int i = 0; i < (x.second) / 2; i++) {
      str += x.first;
    }
  }
  string ans = str;
  if (flag != '0') {
    ans += flag;
  }
  reverse(str.begin(), str.end());
  ans += str;
  cout << ans;
  return 0;
}
