#include<bits/stdc++.h>
using namespace std;
bool isSubsetSum(long long int set[],long long int n,long long int sum)
{
bool subset[n+2][sum+2];
for (long long int i=0;i<=n;i++){
subset[i][0]=true;
}
for (long long int i=1;i<=sum;i++)
{
subset[0][i]=false;
}
for(long long int i=1;i<=n;i++){
for (long long int j=1;j<=sum;j++)
{
if (j<set[i-1])
subset[i][j]=subset[i-1][j];
if (j>=set[i-1])
subset[i][j]=(subset[i-1][j] || subset[i-1][j-set[i-1]]);
}}
return subset[n][sum];
}
vector<int> solve (long long int A0, vector<long long> X, long long int N,long long int Q) {
long long int arr[N];
arr[0]=A0;
for (long long int i=1;i<N;i++){
if (i%2==0)
{
arr[i]=2*arr[i-1]+3*arr[i-2];
}
else
{
arr[i]=3*arr[i-1]+1;
}
}
long long int q=0;
bool ans;
vector <int>a;
for (long long int i=0;i<Q;i++)
{
ans=isSubsetSum(arr,N,X[i]);
if (ans==true){
a.push_back(1);
}
else{
a.push_back(0);
}
}
return a;
}
int main()
{ ios::sync_with_stdio(0);
cin.tie(0);
int T;
cin >> T;
for(int t_i=0; t_i<T; t_i++)
{ int N;
cin >> N;
int A0;
cin >> A0;
int Q;
cin >> Q;
vector<long long> X(Q);
for(int i_X=0; i_X<Q; i_X++)
{
cin >> X[i_X];
}
vector<int> ans = solve(A0, X, N, Q);
for(int i=0;i<ans.size();i++)
{ if(ans[i]) cout<<"true"<<endl ;
else cout<<"false"<<endl ;
}
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKYm9vbCBpc1N1YnNldFN1bShsb25nIGxvbmcgaW50IHNldFtdLGxvbmcgbG9uZyBpbnQgbixsb25nIGxvbmcgaW50IHN1bSkKewogICAgYm9vbCBzdWJzZXRbbisyXVtzdW0rMl07CiAgICBmb3IgKGxvbmcgbG9uZyBpbnQgaT0wO2k8PW47aSsrKXsKICAgICAgICBzdWJzZXRbaV1bMF09dHJ1ZTsKICAgIH0KICAgIGZvciAobG9uZyBsb25nIGludCBpPTE7aTw9c3VtO2krKykKICAgIHsKICAgICAgICBzdWJzZXRbMF1baV09ZmFsc2U7CiAgICB9CiAgICBmb3IobG9uZyBsb25nIGludCBpPTE7aTw9bjtpKyspewogICAgZm9yIChsb25nIGxvbmcgaW50IGo9MTtqPD1zdW07aisrKQogICAgewogICAgICAgIGlmIChqPHNldFtpLTFdKQogICAgICAgIHN1YnNldFtpXVtqXT1zdWJzZXRbaS0xXVtqXTsKICAgICAgICBpZiAoaj49c2V0W2ktMV0pCiAgICAgICAgc3Vic2V0W2ldW2pdPShzdWJzZXRbaS0xXVtqXSB8fCBzdWJzZXRbaS0xXVtqLXNldFtpLTFdXSk7CiAgICB9fQogICAgcmV0dXJuIHN1YnNldFtuXVtzdW1dOwp9CnZlY3RvcjxpbnQ+IHNvbHZlIChsb25nIGxvbmcgaW50IEEwLCB2ZWN0b3I8bG9uZyBsb25nPiBYLCBsb25nIGxvbmcgaW50IE4sbG9uZyBsb25nIGludCBRKSB7CiAgIGxvbmcgbG9uZyBpbnQgYXJyW05dOwogICBhcnJbMF09QTA7CiAgIGZvciAobG9uZyBsb25nIGludCBpPTE7aTxOO2krKyl7CiAgICAgICBpZiAoaSUyPT0wKQogICAgICAgewogICAgICAgICAgICBhcnJbaV09MiphcnJbaS0xXSszKmFycltpLTJdOyAKICAgICAgIH0KICAgICAgIGVsc2UKICAgICAgIHsKICAgICAgICAgICBhcnJbaV09MyphcnJbaS0xXSsxOwogICAgICAgfQogICB9CiAgIGxvbmcgbG9uZyBpbnQgcT0wOwogICBib29sIGFuczsKICAgdmVjdG9yIDxpbnQ+YTsKICAgZm9yIChsb25nIGxvbmcgaW50IGk9MDtpPFE7aSsrKQogICB7CiAgICAgICBhbnM9aXNTdWJzZXRTdW0oYXJyLE4sWFtpXSk7CiAgICAgICBpZiAoYW5zPT10cnVlKXsKICAgICAgICAgICBhLnB1c2hfYmFjaygxKTsKICAgICAgIH0KICAgICAgIGVsc2V7CiAgICAgICAgICAgYS5wdXNoX2JhY2soMCk7CiAgICAgICB9CiAgIH0KICAgcmV0dXJuIGE7Cn0KCmludCBtYWluKCkgCnsgICBpb3M6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoMCk7CiAgICBpbnQgVDsKICAgIGNpbiA+PiBUOwogICAgZm9yKGludCB0X2k9MDsgdF9pPFQ7IHRfaSsrKQogICAgeyAgIGludCBOOwogICAgICAgIGNpbiA+PiBOOwogICAgICAgIGludCBBMDsKICAgICAgICBjaW4gPj4gQTA7CiAgICAgICAgaW50IFE7CiAgICAgICAgY2luID4+IFE7CiAgICAgICAgdmVjdG9yPGxvbmcgbG9uZz4gWChRKTsKICAgICAgICBmb3IoaW50IGlfWD0wOyBpX1g8UTsgaV9YKyspCiAgICAgICAgewogICAgICAgIAljaW4gPj4gWFtpX1hdOwogICAgICAgIH0KICAgICAgICAKICAgICAgICB2ZWN0b3I8aW50PiBhbnMgPSBzb2x2ZShBMCwgWCwgTiwgUSk7CiAgICAgICAgZm9yKGludCBpPTA7aTxhbnMuc2l6ZSgpO2krKykKICAgICAgICB7ICBpZihhbnNbaV0pIGNvdXQ8PCJ0cnVlIjw8ZW5kbCA7IAogICAgICAgICAgIGVsc2UgY291dDw8ImZhbHNlIjw8ZW5kbCA7ICAgICAKICAgICAgICB9CiAgICB9Cn0=