#include <iostream>
#include <vector>
#include <algorithm>
#include <map>

using namespace std;

#define ubrzaj ios::sync_with_stdio(false); cin.tie(NULL);
typedef long long ll;

int main()
{
    ubrzaj;
    ll n;
    int k;
    cin>>n>>k;

    vector<ll> d(k);
    map<ll, ll> f;
    for (int i=0; i<k; i++)
    {
        cin>>d[i];
        f[d[i]]=d[i];
    }

    vector<ll> prosti;
    ll privremeno_n=n;
    for (ll i=2; i*i<=privremeno_n; i++)
    {
        if(privremeno_n%i==0)
        {
            prosti.push_back(i);
            while
            {
                ((privremeno_n % i) == 0) privremeno_n/=i;
            }
        }
    }
    if(temp_n>1)
    {
        prosti.push_back(temp_n);
    }
    
    vector<ll> sortirani_d=d;
    sort(sortirani_d.begin(), sortirani_d.end());

    for (ll p : prosti)
    {
        for (ll x : sortirani_d)
        {
            if ((x % p)==0)
            {
                f[x] ^= f[x/p];
            }
        }
    }
    
    for (int i=0; i<k; i++)
    {
        cout<<f[d[i]]<<(i==k-1 ? "" : " ");
    }
    return 0;
}