#include <bits/stdc++.h>
using namespace std;
void solve() {
  string s;
  cin >> s;
  long long int n = s.size();
  char b[n];
  int a[n];
  strcpy(b, s.c_str());
  for (long long int i = 0; i < n; i++) {
    a[i] = b[i];
  }
  long long int l = 0;
  long long int r = n - 1;
  long long int flag = 1;
  vector<int> cindex;
  while (l <= r && flag) {
    if (a[r] == a[l] && flag) {
      if (l == r) {
        cindex.push_back(l);
      } else {
        cindex.push_back(l);
        cindex.push_back(r);
      }
    } else {
      flag = 0;
    }
    l++;
    r--;
  }
  vector<int> lpandif;
  vector<int> lpandir;
  vector<int> lindex;
  vector<int> tempindex;
  if (!flag) {
    l--;
    r++;
  }
  int temp = l;
  while (l < r) {
    lpandif.push_back(a[l]);
    lpandir.push_back(a[l]);
    tempindex.push_back(l);
    reverse(lpandir.begin(), lpandir.end());
    if (lpandif == lpandir) {
      for (int i = lindex.size(); i < tempindex.size(); i++) {
        lindex.push_back(tempindex[i]);
      }
    }
    l++;
    reverse(lpandir.begin(), lpandir.end());
  }
  vector<int> rpandif;
  vector<int> rpandir;
  vector<int> rtempindex;
  vector<int> rindex;
  while (r > temp) {
    rpandif.push_back(a[r]);
    rpandir.push_back(a[r]);
    rtempindex.push_back(r);
    reverse(rpandir.begin(), rpandir.end());
    if (rpandif == rpandir) {
      for (int i = rindex.size(); i < rtempindex.size(); i++) {
        rindex.push_back(rtempindex[i]);
      }
    }
    r--;
    reverse(rpandir.begin(), rpandir.end());
  }
  vector<int> ans;
  for (auto& it : cindex) {
    ans.push_back(it);
  }
  if (lindex.size() >= rindex.size()) {
    for (auto& it : lindex) {
      ans.push_back(it);
    }
  } else {
    for (auto& it : rindex) {
      ans.push_back(it);
    }
  }
  sort(ans.begin(), ans.end());
  for (auto& it : ans) {
    cout << b[it];
  }
  cout << "\n";
}
int main() {
  int t;
  t = 1;
  cin >> t;
  while (t--) {
    solve();
  }
}
