#include<atcoder/all>
using namespace std;
using ll = long long;

unsigned xor128_x = 123456789, xor128_y = 362436069, xor128_z = 521288629, xor128_w = 88675123;
unsigned xor128() {
	unsigned t = xor128_x ^ (xor128_x << 11);
	xor128_x = xor128_y; xor128_y = xor128_z; xor128_z = xor128_w;
	return xor128_w = xor128_w ^ (xor128_w >> 19) ^ (t ^ (t >> 8));
}

int main(){
    int N, Q;
    cin >> N >> Q;
    vector<int> A(N);
    vector<bool> t(100003);
    for(int i = 0; i < N; i++){
        A[i] = xor128() % 100003;
        t[A[i]] = true;
    }
    ll q;
    while(Q--){
        cin >> q;
        if(q == 0){
            cout << 0 << '\n';
            continue;
        }
        ll ans = 0;
        if(N <= 500){
            for(int i = 0; i < N; i++){
                ans = max(ans, q * A[i] % 100003);
            }
        }else{
            ll inv = atcoder::inv_mod(q, 100003);
            for(int i = 100002; i >= 0; i--){
                if(t[i * inv % 100003]){
                    ans = i;
                    break;
                }
            }
        }
        cout << ans << '\n';
    }
}