#include <bits/stdc++.h>
using namespace std;
int dx8[] = {0, 0, 1, -1, 1, -1, 1, -1};
int dy8[] = {-1, 1, 0, 0, -1, -1, 1, 1};
int dy[] = {1, -1, 0, 0};
int dx[] = {0, 0, 1, -1};
int X[6] = {0, 0, 0, -1, 0, 1};
int Y[6] = {0, 0, -1, 0, 1, 0};
int Z[6] = {1, -1, 0, 0, 0, 0};
int main() {
  string s;
  cin >> s;
  vector<int> C(28, 0);
  vector<char> ans(s.size(), '0'), _1;
  char c;
  for (int i = 0; i < s.size(); i++) {
    C[s[i] - 'a']++;
  }
  int i = 0, j = s.size() - 1;
  for (int k = 0; k < 26; k++) {
    while (C[k] - 2 >= 0) {
      ans[i] = ans[j] = (char(k + 'a'));
      C[k] -= 2;
      i++, j--;
    }
    if (C[k] == 1) {
      bool f = 0;
      for (int l = 25; l > k; l--) {
        if (C[l] % 2) {
          C[l]--;
          ans[i] = ans[j] = (char(k + 'a'));
          i++, j--;
          f = 1;
          break;
        }
      }
      if (!f) c = (k + 'a');
    }
  }
  for (i = 0; i < ans.size(); i++) {
    if (ans[i] == '0')
      cout << c;
    else
      cout << ans[i];
  }
}
