#include <bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;

int n,k;
int d[100009],niz[1000009],ksor[1000009];
void tst1(){
    for(int i=1; i<=k; i++){
        int m=d[i];
        int rez=0;
        for(int j=1; j*j<=m; j++){
            if(m%j!=0) continue;
            if(j*j==m) rez^=j;
            else rez^=j^(m/j);
        }
        cout << rez << " ";
    }
}


signed main()
{
    ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);

    cin >> n >> k;
    for(int i=1; i<=k; i++) cin >> d[i];
    //if(n<=1000000000){tst1(); return 0;}
    map<int,int> rez;
    for(int i=1; i<=k; i++) niz[i]=d[i];
    sort(niz+1,niz+k+1);
    for(int i=1; i<=k; i++){
        for(int j=1; j<=i; j++){
            if(niz[i]%niz[j]==0)
                ksor[i]^=niz[j];
        }

        rez[niz[i]]=ksor[i];
    }
    for(int i=1; i<=k; i++) cout << rez[d[i]] << " ";



    return 0;
}