import java.io.PrintStream;
import java.util.*;
import java.math.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//input
int n = sc.nextInt();
int[] isPrime = new int[n+5];
int[] prime = new int[n+5];
int num = 0;
//素数筛
for(int i=2;i<=n;i++) {
if(isPrime[i] == 0) {
prime[num++] = i;
}
for(int j=0;j<num && i*prime[j]<=n;j++) {
isPrime[i*prime[j]] = 1;
if(i % prime[j] == 0) break;
}
}
//output
int q = sc.nextInt();
for(int i=0;i<q;i++) {
int x = sc.nextInt();
System.out.println(prime[x-1]);
}
}
}
我看题解都是c++的,也开了一样大的数组,为啥java内存就爆了