#include<iostream>#include<cstring>#include<algorithm>
using namespace std;voidfre(){freopen("A.txt","r",stdin);freopen("Ans.txt","w",stdout);}constint mxn =5e6+10;char ar[mxn], br[mxn], cr[mxn];int len[mxn];int is_front;inttrans(int lbr){int cnt =0;
cr[cnt ++]='$';for(int i =1; i <= lbr; i ++){
cr[cnt ++]='#';
cr[cnt ++]= br[i];}
cr[cnt ++]='#';
cr[cnt]='%';return cnt;}intManacher(int lcr){int mid =0, mr =0;int mx =0;for(int i =1; i < lcr; i ++){if(i < mr) len[i]=min(mr - i, len[2*mid - i]);else len[i]=1;while(cr[i - len[i]]== cr[i + len[i]]) len[i]++;if(mr < i + len[i]){
mr = i + len[i];
mid = i;}if(mx < len[i]&&(i - len[i]==0|| i + len[i]== lcr)){
mx = len[i];if(i - len[i]==0)
is_front =1;else
is_front =0;}}return mx -1;}intmain(){/* fre(); */int t;scanf("%d",&t);while(t --){memset(len,0,sizeof(0));scanf("%s", ar +1);int lar =strlen(ar +1);int l =1, r = lar;while(l < r && ar[l]== ar[r])
l ++, r --;int lbr =0;for(int i = l; i <= r; i ++)
br[++ lbr]= ar[i];int mx =Manacher(trans(lbr));for(int i =1; i < l; i ++)printf("%c", ar[i]);if(is_front){for(int i =1; i <= mx; i ++)printf("%c", br[i]);}else{for(int i = lbr - mx +1; i <= lbr; i ++)printf("%c", br[i]);}for(int i = r +1; i <= lar; i ++)printf("%c", ar[i]);printf("\n");}return0;}