#include <iostream>usingnamespacestd;
bool isPrime(int a);
int findPos(int *a, int s, int msize);
int main() {
int msize, n;
cin >> msize >> n;
if (!isPrime(msize)) {
int i;
for (i = msize + 1; !isPrime(i); i++);
msize = i;
}
int *a = newint[msize];
fill(a, a + msize, 0);
int s;
for (int i = 0; i < n; i++) {
cin >> s;
s = s % msize;
int out;
if (a[s] == 1) {
out = findPos(a, s, msize);
if (out == -1) cout << "-";
else {
a[out] = 1;
cout << out;
}
} else {
a[s] = 1;
cout << s;
}
if (i < n - 1) cout << " ";
}
cout << endl;
delete[] a;
return0;
}
bool isPrime(int a) {
if (a == 1) returnfalse;// 1 is not prime number ?for (int i = 2; i * i <= a; i++) {
if (a % i == 0) returnfalse;
}
returntrue;
}
int findPos(int *a, int s, int msize) {
for (int i = 1; i <= msize - 1; i++) {
int tmp = s + i*i;
tmp %= msize;
if (a[tmp] == 0) return tmp;
}
return -1;
}