// 0 1 2 3 4 下标
// 10 6 4
//15%5
//15+1*1
//15+2*2
//15+3*3
//15+4*4
#include<iostream>
using namespace std;
int M,N;
bool isprime(int p){//判质函数
int i;
if(p==1)return false;
for(i=2;i*i<=p;i++){
if(p%i==0)return false;
}
return true;
}
int main()
{
int i,j,k,l,data[20000]={0};
cin>>M>>N;
while(isprime(M)==false)M++;
for(l=0;l<N;l++){
cin>>i;
//读数
for(j=0;j<M;j++){
k=(i+j*j)%M;
if(data[k]==0){//空闲
break;
}
else{//已经占领
continue;
}
}
//尝试
if(j==M){
if(l)cout<<' ';
cout<<'-';
}
else{
data[k]=i;
if(l)cout<<' ';
cout<<k;
}
}
}