#include <bits/stdc++.h>
using namespace std;
string solve(string s) {
  string rev = s;
  reverse(rev.begin(), rev.end());
  s = s + "." + rev;
  long long int l = s.size();
  long long int a[l + 5];
  a[0] = 0;
  long long int i = 0, j = 1;
  while (j < l) {
    if (s[i] == s[j]) {
      a[j] = i + 1;
      ++i;
      ++j;
    } else {
      if (i > 0) {
        i = a[i - 1];
      } else {
        a[j] = 0;
        ++j;
      }
    }
  }
  return (s.substr(0, a[l - 1]));
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long int t;
  cin >> t;
  while (t--) {
    string s, a, b, k;
    cin >> s;
    long long int i, j, n = s.size();
    for (i = 0, j = n - 1; i < j; ++i, --j) {
      if (s[i] != s[j]) break;
    }
    if (i >= j) {
      cout << s << endl;
      continue;
    }
    a = s.substr(0, i);
    b = s.substr(j + 1, n - j - 1);
    k = s.substr(i, n - 2 * i);
    string lpp1 = solve(k);
    reverse(k.begin(), k.end());
    string lpp2 = solve(k);
    if (lpp1.size() >= lpp2.size())
      cout << a << lpp1 << b << endl;
    else
      cout << a << lpp2 << b << endl;
  }
  return 0;
}
