importjava.io.IOException;
importjava.io.FileInputStream;
importjava.io.InputStreamReader;
importjava.io.BufferedReader;
importjava.io.PrintWriter;
importjava.io.OutputStreamWriter;
importjava.io.StreamTokenizer;
publicclassMain{
publicstaticbooleanDEBUG=false;
publicBufferedReadercin;
publicPrintWritercout;
publicStreamTokenizertokenizer;
publiclongn, k;
publicvoidinit()
{
try {
if (DEBUG) {
cin=newBufferedReader(newInputStreamReader(
newFileInputStream("d:\\OJ\\uva_in.txt")));
} else {
cin=newBufferedReader(newInputStreamReader(System.in));
}
} catch (IOExceptione) {
}
cout=newPrintWriter(newOutputStreamWriter(System.out));
tokenizer=newStreamTokenizer(cin);
}
publicStringnext()
{
try {
tokenizer.nextToken();
if (tokenizer.ttype==StreamTokenizer.TT_EOF)
returnnull;
elseif (tokenizer.ttype==StreamTokenizer.TT_WORD)
returntokenizer.sval;
elseif (tokenizer.ttype==StreamTokenizer.TT_NUMBER)
returnString.valueOf((int)tokenizer.nval);
} catch (IOExceptione) {
}
returnnull;
}
publicvoidinput()
{
try {
n=Long.parseLong(next());
k=Long.parseLong(next());
} catch (Exceptione) {
}
}
publicintconvert(longnum)
{
int[] buf=newint[30];
intlen=0;
longtmp=num*num;
while (tmp!=0) {
buf[len++] = (int)(tmp%10);
tmp/=10;
}
longtmpn=n;
if (tmpn>len) {
tmpn=len;
}
intans=0;
for (longi=0; i<tmpn; i++) {
ans=ans*10+buf[--len];
}
returnans;
}
publicvoidsolve()
{
longk1=k, k2=k;
longans=k;
do {
k1=convert(k1);
k2=convert(k2);
if (k2>ans) ans=k2;
k2=convert(k2);
if (k2>ans) ans=k2;
} while (k1!=k2);
cout.println(ans);
cout.flush();
}
publicstaticvoidmain(String[] args)
{
try {
Mainsolver=newMain();
solver.init();
intt=Integer.parseInt(solver.next());
while (t-->0) {
solver.input();
solver.solve();
}
} catch (Exceptione) {
}
}
}