#include <bits/stdc++.h>
using namespace std;
int get_end_nech(vector<int>& mas) {
  int i = 25;
  while (mas[i] % 2 != 1) {
    i--;
  }
  return i;
}
int main() {
  string s;
  cin >> s;
  vector<int> mas(26, 0);
  for (int i = 0; i < s.size(); ++i) {
    mas[s[i] - 'a']++;
  }
  int icur2;
  string cur1, cur2, cur3;
  cur1 = "";
  cur2 = "";
  cur3 = "";
  for (int i = 0; i < 26; ++i) {
    if (mas[i] % 2 == 1) {
      icur2 = get_end_nech(mas);
      mas[i]++;
      mas[icur2]--;
    }
    cur2 = (char)('a' + i);
    while (mas[i] > 1) {
      cur1.append(cur2);
      mas[i] -= 2;
    }
    if (mas[i] == 1) {
      cur3 = i + 'a';
    }
  }
  cout << cur1 << cur3;
  reverse(cur1.begin(), cur1.end());
  cout << cur1 << endl;
  return 0;
}
