## https://yukicoder.me/problems/no/1810 MOD = 10 ** 9 + 7 def prod(left, right): new_matrix = [ [0] * 3 for _ in range(3) ] for i in range(3): for j in range(3): for k in range(3): new_matrix[i][j] += (left[i][k] * right[k][j]) % MOD new_matrix[i][j] %= MOD return new_matrix def solve(A, B, T): t = T // 2 matrix1 = [ [1, 0, 0], [0, 1, 0], [A, B, 1] ] matrix2 = [ [0, 0, 1], [1, 0, 0], [0, 0, 0] ] base_matrix = prod(matrix2, matrix1) matrix = [ [1, 0, 0], [0, 1, 0], [0, 0, 1] ] while t > 0: if t % 2 == 1: matrix = prod(base_matrix, matrix) base_matrix = prod(base_matrix, base_matrix) t //= 2 if T % 2 == 1: matrix = prod(matrix1, matrix) vector = [1, 1, 0] new_vector = [0, 0, 0] for i in range(3): for j in range(3): new_vector[i] += (matrix[i][j] * vector[j]) % MOD new_vector[i] %= MOD answer = 0 for i in range(3): answer += new_vector[i] answer %= MOD return answer def main(): A, B = map(int, input().split()) N = int(input()) n_list = [] for _ in range(N): T = int(input()) n_list.append(T) for n in n_list: print(solve(A, B, n)) if __name__ == "__main__": main()