#include <bits/stdc++.h>
#define ull unsigned long long
using namespace std;

ull stepeni2[30] = {2,4,8,16,32,
64,
128,
256,
512,
1024,
2048,
4096,
8192,
16384,
32768,
65536,
131072,
262144,
524288,
1048576,
2097152,
4194304,
8388608,
16777216,
33554432,
67108864,
134217728,
268435456,
536870912,
1073741824 
};

bool jestepen2(ull n) {
	for (int i = 0; i<30; i++) if (n == stepeni2[i]) return true;
	return false;
}

ull fdelilac(ull n) {
	for (ull i = 2; i*i<n; i++) {
		if (n%i==0) return i;
	}
	return n;
}

ull xordelioca(ull n) {
	if (n == 1) return 1 ;
	if (jestepen2(n)) return n*2-1;
	vector<ull> cinioci;
	while(n!=1) {
		ull delilac = fdelilac(n);
		cinioci.push_back(delilac);
		n/=delilac;
	}
	set<ull> svidelioci;
	for (ull i = 0; i<pow(2, cinioci.size()); i++) {
		int delilac = 1;
		ull m = 2;
		for (ull j = 0; j<cinioci.size(); j++) {
			delilac*=pow(cinioci[j],((i%m)>=(m/2)));
			svidelioci.insert(delilac);
			//cout << i << ' ' << ((i%m)>=(m/2)) << '\n';
			m*=2;
		}
	}
	ull xord = 0;
	for(ull d : svidelioci) xord = xord^d;
	return xord;
}

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);

	ull n; cin >> n;
	int k; cin >> k;
	ull delioci[k];
	for (int i = 0; i<k; i++) cin >> delioci[i];
	

	for (int i = 0; i<k; i++) {
		cout << xordelioca(delioci[i]) << ' ';
	}
	


return 0;
}