def main(): import sys input = sys.stdin.read().split() idx = 0 m = 100003 N = int(input[idx]) idx += 1 Q = int(input[idx]) idx += 1 queries = [int(input[idx + i]) for i in range(Q)] # Initialize xor128 variables xor_x = 123456789 xor_y = 362436069 xor_z = 521288629 xor_w = 88675123 def xor128(): nonlocal xor_x, xor_y, xor_z, xor_w t = xor_x ^ ((xor_x << 11) & 0xFFFFFFFF) t = t ^ ((t >> 8) & 0xFFFFFFFF) xor_x, xor_y, xor_z, xor_w = xor_y, xor_z, xor_w, xor_w new_w_part = (xor_w ^ (xor_w >> 19)) & 0xFFFFFFFF new_w = (new_w_part ^ t) & 0xFFFFFFFF xor_w = new_w return xor_w # Generate A A = [] for _ in range(N): val = xor128() % m A.append(val) # Create existence array exist = [False] * m for x in A: exist[x] = True # Process each query for q in queries: if q == 0: print(0) continue inv_q = pow(q, m - 2, m) found = -1 for k in range(m - 1, -1, -1): a = (k * inv_q) % m if exist[a]: found = k break print(found) if __name__ == "__main__": main()