1 #include <iostream>
2 #include<cstdio>
3 #include<string.h>
4 using namespace std;
5
6 #define maxn 105
7
8 int a[maxn],pos[maxn];
9
10 int main()
11 {
12 int t,n,i,j,q,ans;
13 long long p;//因为0 <= p <= 1234567898765432
14 scanf("%d",&t);
15 while(t--)
16 {
17 scanf("%d",&n);
18 memset(a,0,sizeof(a));//这个很妙,比如n=3,则p>=8以后都要=0,就靠这一句
19 for(i=0;i<n;i++)
20 {
21 scanf("%d",&a[i]);
22 }
23 scanf("%d",&q);
24 while(q--)
25 {
26 scanf("%lld",&p);
27 if(p==0)
28 {
29 printf("1\n");//别忘了
30 continue;
31 }
32 memset(pos,0,sizeof(pos));
33 i=0;
34 while(p)
35 {
36 pos[i++]=p%2;//求p转化为二进制
37 p/=2;
38 }
39 ans=1;
40 for(j=0;j<i;j++)
41 {
42 if(pos[j])//如果那一位二进制=1
43 {
44 ans=ans*a[j]%2012;//则就是那几位相乘,一边乘一遍取余2012
45 }
46 }
47 printf("%d\n",ans);
48 }
49 }
50 return 0;
51 }