곱의 합 쿼리

각 질의 K마다 A의 K개 원소를 고르는 모든 조합의 곱을 더한 값을 100003으로 나눈 나머지를 구한다.

보통6동적 계획법조합론수학아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

길이가 NN인 수열 AA가 주어진다. 이 수열에 대한 쿼리 QQ개를 처리하는 프로그램을 작성하시오.

각 쿼리는 정수 KK 하나로 이루어진다. 수열 AA에서 원소를 KK개 고르는 방법을 모두 살펴보고, 고른 KK개의 곱을 각각 구한 다음, 그 곱을 전부 더한 값을 100003100003으로 나눈 나머지를 출력한다.

고르는 방법은 위치로 구분한다. 값이 같은 원소가 여러 개 있어도 위치가 다르면 서로 다른 방법이므로, 방법의 수는 항상 이항계수 (NK)\binom{N}{K}와 같다.

입력

첫째 줄에 NN (1N300001 \le N \le 30000)이 주어진다.

둘째 줄에 수열의 원소 A1,A2,,ANA_1, A_2, \dots, A_N (1Ai1000001 \le A_i \le 100000)이 공백으로 구분되어 주어진다.

셋째 줄에 쿼리의 개수 QQ (1QN1 \le Q \le N)가 주어진다.

넷째 줄부터 QQ개의 줄에 각 쿼리의 KK (1KN1 \le K \le N)가 한 줄에 하나씩 주어진다.

출력

각 쿼리의 답을 입력에 주어진 순서대로 한 줄에 하나씩 출력한다.

힌트

A=(2,3,5)A = (2, 3, 5)이고 K=2K = 2이면 고르는 방법은 {2,3}\{2, 3\}, {2,5}\{2, 5\}, {3,5}\{3, 5\} 세 가지다. 곱은 각각 66, 1010, 1515이고 합은 3131이다.

A=(4,4,7)A = (4, 4, 7)이고 K=2K = 2이면 두 44의 값이 같아도 위치가 다르므로 방법은 역시 세 가지다. 곱은 각각 1616, 2828, 2828이고 합은 7272이다.