题目
#include<bits/stdc++.h>
using namespace std;
inline int in()
{
int k=0,f=1;
char c=getchar();
while(c<'0'||c>'9')
{
if(c=='-') f=-1;
c=getchar();
}
while(c>='0'&&c<='9')
{
k=k*10+c-'0';
c=getchar();
}
return k*f;
}
inline void out(int x)
{
if(x<0) putchar('-'),x=-x;
if(x<10) putchar(x+'0');
else out(x/10),putchar(x%10+'0');
}
const int maxn=1e8+5;
bitset<maxn> num;
vector<int> prime;
inline void inle(int n)
{
for (int i = 2; i <= n; ++i)
{
if (!num[i]) prime.push_back(i);
for (int j = 0; j < prime.size(); ++j)
{
if (i * prime[j] >= n) break;
num[i * prime[j]] = 1;
if(i % prime[j] == 0) break;
}
}
}
int main()
{
int n,q,x;
n=in();q=in();
inle(n);
for(int i=1;i<=n;i++)
{
x=in();
printf("%d \n",prime[x-1]);
}
return 0;
}