模板线性筛素数筛
#include <bits/stdc++.h>
using namespace std;
const int N = 100000005;
int a[N], n, m, cnt = 0;//a里面存的所有素数
bool f[N];
void sushu(int n) {
for (int i = 2; i <= n; i++) {
if (!f[i])
a[cnt++] = i;
for (int j = 0; j <= n / i; j++) {
f[i * a[j]] = true;
if (i % a[j] == 0)break;
}
}
}
int main() {
cin >> n >> m;
int t;
sushu(n);
while (m--) {
scanf("%d", &t);
printf("%d\n", a[t - 1]);
}
}