import java.io.*;
import java.util.HashSet;
public class Main {
static long []a=new long [100000];
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
StreamTokenizer in =new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
PrintWriter pw=new PrintWriter(new OutputStreamWriter(System.out));
in.nextToken();
int t =(int)in.nval;
for(int i=0;i<t;i++) {
in.nextToken();
long b=(long)in.nval;
int ans=0;
for(int j=2;j>0;j++) {
long y=b;
int index=0;
while(y!=0) {
a[index++]=(y%j);
y/=j;
}
if(check(a,index)) {
pw.println(j);
pw.flush();
break;
}
}
}
}
static boolean check(long []a,int index) {
HashSet<Long>set=new HashSet<>();
int l=0;
for(int i=0;i<index;i++) {
set.add(a[i]);
}
int[] tem=new int [set.size()];
for(Long i:set) {
for(int j=0;j<index;j++) {
if(i==a[j]) {
tem[l]++;
}
}
if(l>=1) {
if(tem[l-1]!=tem[l]) {
return false;
}
}
l++;
}
for(int i=1;i<set.size();i++) {
if(tem[i]!=tem[i-1]) {
return false;
}
}
return true;
}
}
加一个区间验证试一试