/*
Migrated from Lutece 1936 最长回文子串
Description
读入一个全由小写英文构成的字符串, 求出其中最长的回文子串. 回文串是指正着看和倒着看相同, 如abba和yyxyy.
Input
有多组测试数据。第一行是整数T (T <= 100),表示测试数据的组数,随后有T组测试数据。
每一组测试数据占一行,是一个长度不超过1000的全由小写英文构成的字符串.
Output
对应每组输入,输出最长回文子串. 如果有多个最长子串, 则输出下标最小的那个.
*/
#include <iostream>
#include <string>
void solve(){
std::string s;std::cin>>s;
if(s.size()==0){
std::cout<<std::endl;
return;
}
int start = 0, maxLen = 1;
for(int i = 0;i<s.size();++i){
int l = i-1,r = i+1;
while(l>=0 && r<s.size() && s[l]==s[r]){
--l;++r;
}
if(r-l-1>maxLen){
maxLen = r-l-1;
start = l+1;
}
l=i,r=i+1;
while(l>=0 && r<s.size() && s[l]==s[r]){
--l;++r;
}
if(r-l-1>maxLen){
maxLen = r-l-1;
start = l+1;
}
}
std::cout<<s.substr(start,maxLen)<<std::endl;
}
int main(){
int T;std::cin>>T;
while(T--){
solve();
}
}