#include <iostream>
#include <cstdio>
#include <stdlib.h>
#include <algorithm>
#include <map>
#include <queue>
#include <iomanip>
#include <string>
#include <math.h>
#include <limits>
#include <map>
#include <float.h>
#include <limits.h>
#include <string.h>
using namespace std;
#define rep(i,a,N) for(int i=a;i<N;++i)
string NextPalindrome(string result){
int start=0,end=result.size()-1;
string str=result;
bool incr=false;
while(start<end){
if(str.at(end)<str.at(start))
incr=true;
str.at(end)=str.at(start);
++start;
--end;
}
if(!incr){
if(start>end){//even condition
while(start>=0 && str.at(start)=='9')
--start;
if(start==-1){//all 9's
rep(i,1,str.size()-1)
str.at(i)='0';
str.at(0)='0';
str.at(str.size()-1)='1';
str="1"+str;
//str+="1";
return str;
}
++str.at(start);
end=str.size()-start-1;
str.at(end)=str.at(start);
}
else{//odd condition
while(start>=0 && str.at(start)=='9')
--start;
if(start==-1){//all 9's
rep(i,1,str.size()-1)
str.at(i)='0';
str.at(0)='0';
str.at(str.size()-1)='1';
str="1"+str;
//str+="1";
return str;
}
++str.at(start);//=(char)((int)(str.at(start)-47));//increment the middle one
end=str.size()-start-1;
str.at(end)=str.at(start);
}
}
return str;
}
int main(){
int T;
string str;
scanf("%d",&T);
while(T--){
cin>>str;
cout<<NextPalindrome(str)<<endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8c3RkbGliLmg+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDxxdWV1ZT4KI2luY2x1ZGUgPGlvbWFuaXA+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDxtYXRoLmg+CiNpbmNsdWRlIDxsaW1pdHM+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDxmbG9hdC5oPgojaW5jbHVkZSA8bGltaXRzLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSByZXAoaSxhLE4pIGZvcihpbnQgaT1hO2k8TjsrK2kpCgpzdHJpbmcgTmV4dFBhbGluZHJvbWUoc3RyaW5nIHJlc3VsdCl7CglpbnQgc3RhcnQ9MCxlbmQ9cmVzdWx0LnNpemUoKS0xOwoJc3RyaW5nIHN0cj1yZXN1bHQ7Cglib29sIGluY3I9ZmFsc2U7Cgl3aGlsZShzdGFydDxlbmQpewoJCWlmKHN0ci5hdChlbmQpPHN0ci5hdChzdGFydCkpCgkJCWluY3I9dHJ1ZTsKCQlzdHIuYXQoZW5kKT1zdHIuYXQoc3RhcnQpOwoJCSsrc3RhcnQ7CgkJLS1lbmQ7Cgl9CglpZighaW5jcil7CgkJaWYoc3RhcnQ+ZW5kKXsvL2V2ZW4gY29uZGl0aW9uCgkJCXdoaWxlKHN0YXJ0Pj0wICYmIHN0ci5hdChzdGFydCk9PSc5JykKCQkJCS0tc3RhcnQ7CgkJCWlmKHN0YXJ0PT0tMSl7Ly9hbGwgOSdzCgkJCQlyZXAoaSwxLHN0ci5zaXplKCktMSkKCQkJCQlzdHIuYXQoaSk9JzAnOwoJCQkJc3RyLmF0KDApPScwJzsKCQkJCXN0ci5hdChzdHIuc2l6ZSgpLTEpPScxJzsKCQkJCXN0cj0iMSIrc3RyOwoJCQkJLy9zdHIrPSIxIjsKCQkJCXJldHVybiBzdHI7CgkJCX0KCQkJKytzdHIuYXQoc3RhcnQpOwoJCQllbmQ9c3RyLnNpemUoKS1zdGFydC0xOwoJCQlzdHIuYXQoZW5kKT1zdHIuYXQoc3RhcnQpOwoJCX0KCQllbHNley8vb2RkIGNvbmRpdGlvbgoJCQl3aGlsZShzdGFydD49MCAmJiBzdHIuYXQoc3RhcnQpPT0nOScpCgkJCQktLXN0YXJ0OwoJCQlpZihzdGFydD09LTEpey8vYWxsIDkncwoJCQkJcmVwKGksMSxzdHIuc2l6ZSgpLTEpCgkJCQkJc3RyLmF0KGkpPScwJzsKCQkJCXN0ci5hdCgwKT0nMCc7CgkJCQlzdHIuYXQoc3RyLnNpemUoKS0xKT0nMSc7CgkJCQlzdHI9IjEiK3N0cjsKCQkJCS8vc3RyKz0iMSI7CgkJCQlyZXR1cm4gc3RyOwoJCQl9CgkJCSsrc3RyLmF0KHN0YXJ0KTsvLz0oY2hhcikoKGludCkoc3RyLmF0KHN0YXJ0KS00NykpOy8vaW5jcmVtZW50IHRoZSBtaWRkbGUgb25lCgkJCWVuZD1zdHIuc2l6ZSgpLXN0YXJ0LTE7CgkJCXN0ci5hdChlbmQpPXN0ci5hdChzdGFydCk7CgkJfQoJfQoJcmV0dXJuIHN0cjsKfQoKaW50IG1haW4oKXsKCWludCBUOwoJc3RyaW5nIHN0cjsKCXNjYW5mKCIlZCIsJlQpOwoJd2hpbGUoVC0tKXsKCQljaW4+PnN0cjsKCQljb3V0PDxOZXh0UGFsaW5kcm9tZShzdHIpPDxlbmRsOwoJfQoJcmV0dXJuIDA7Cn0=