from random import randint from sys import set_int_max_str_digits set_int_max_str_digits(0) M = 998 xor1 = randint(0, (1<<30)-1) xor2 = randint(0, (1<<30)-1) def main(): t = int(input()) for _ in range(t): solve() def solve(): n, ti = map(int, input().split()) dist = dict() dist[(1^xor1, 1^xor2)] = c = 0 u = v = 1 s = [(1, 1)] while True: u = u*n%M v = (u+v)%M c += 1 if (u^xor1, v^xor2) in dist: break dist[(u^xor1, v^xor2)] = c s.append((u, v)) f = dist[(u^xor1, v^xor2)] for _ in range(ti): k = int(input()) print(s[k][1] if k < f else s[(k - f) % (c - f) + f][1]) if __name__ == '__main__': main()