//I am getting the NZEC runtime error could you please take alook at my code and point me to the issue
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.StringTokenizer;
public class Main {
private static BufferedReader br;
private static StringTokenizer st;
private static PrintWriter pw;
public static void main(String[] args) throws IOException {
br = new BufferedReader(new InputStreamReader(System.in));
pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
int k = readInt();
for(int qq=1;qq<=k;qq++){
String s = nextToken();
String ps = get_next_pal(s);
pw.println(ps);
}
pw.close();
}
public static String get_next_pal(String s){
int len = s.length();
String fp = null;
String dr = null;
StringBuilder drh = null;
boolean iseven = true;
char mid = 'q';
Character m='x';
if(len%2 == 0){
fp = s.substring(0, len/2);
dr = new StringBuilder(fp).reverse().toString();
dr = fp+dr;
}else {
mid = s.charAt(len/2);
fp = s.substring(0, len/2);
dr = new StringBuilder(fp).reverse().toString();
m = mid;
dr = fp+m.toString()+dr;
if(dr.compareTo(s) > 0) return dr;
if(mid <'9'){
mid+=1;
m = mid;
}else {
m = '0';
}
iseven = false;
dr = fp+m.toString()+new StringBuilder(fp).reverse().toString();
}
if(dr.compareTo(s) > 0){
return dr;
}else {
return get_pal(fp,m,iseven,len/2);
}
}
public static String get_pal(String fp,Character mid,boolean iseven,int hl){
StringBuilder s= new StringBuilder();
String r = null;
for(int i=hl-1;i>=0;i--){
char c = fp.charAt(i);
if(c>='0' && c<'9'){
c+=1;
s.append(c);
r = fp.substring(0, i)+s.reverse().toString();
break;
}else {
s.append('0');
}
}
String t = s.toString();
int ti = Integer.parseInt(t);
String res=null;
if(ti == 0){
res="1"+t+t.substring(0, s.length()-1)+"1";
if(!iseven ){
res = "1"+t+t.substring(0, s.length())+"1";
}
}
else {
res = r+new StringBuilder(r).reverse().toString();
if(!iseven ){
res = r+mid.toString()+new StringBuilder(r).reverse().toString();
}
}
return res;
}
private static int readInt() throws IOException {
return Integer.parseInt(nextToken());
}
private static String nextToken() throws IOException {
while(st == null || !st.hasMoreTokens()) {
/*if(!br.ready()) {
pw.close();
System.exit(0);
}*/
st = new StringTokenizer(br.readLine().trim());
}
return st.nextToken();
}
}