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 }