/*
Migrated from Lutece 1939 能否被3整除2
Description
有数列定义为:F(0) = a, F(1) =b,F(n) = F(n-1)+F(n-2), 且0 < a < b < 20.现给出a, b, n,请问F(n)能否被3整除.
Input
有多组测试数据.输入的第一行是整数T(1<=T<=20),表示随后测试数据的组数.
每组测试数据的第一行是正整数a, b, m, a,b的含义如前所述, m表示随后有m行,每行为前面所述的n, 0 < m < 100, 0 < n < 10^9.
Output
对应每组测试数据,共输出m行,如果每行对应的F(n)能被3整除,则输出一行”Yes”,否则输出一行”No”.两组测试数据的输出间,请输出一行空行.
*/
/*
斐波那契数列对任意整数m取模后的结果是周期性的
不同的m对应不同的周期
对于m=3,周期为8
*/
// 斐波那契数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...
// 模3得到的数列 0, 1, 1, 2, 0, 2, 2, 1, 0, 1, 1, 2, 0, 2, 2, 1, ...
// 若斐波那契数列的初始两个数为 a, b
// (a+b)%m == (a%m + b%m)%m (mod m),这里的==指的是等式两边模m的余数相同
#include <iostream>
#include <vector>
#include <algorithm>
void solve(){
int a,b,m;
std::cin>>a>>b>>m;
std::vector<int> vecN(m);
for(auto& i : vecN)std::cin>>i;
// curr -- a
a%=3;b%=3;//ab : 00 11 22 01 10 12 21 02 20
// 1 1 2 0 2 2 1 0 1 1 2 0 2 2 1 0 1 1 2 0 2 2 1 ... (mod 3)
// 00 --> Yes
// 01 02 --> Yes in [0,4,8,12,...]
// 10 20 --> Yes in [1,5,9,13,...]
// 12 21 --> Yes in [2,6,10,14,...]
// 11 22 --> Yes in [3,7,11,15,...]
if(a==0&&b==0){
for(int i = 0;i<m;++i){
std::cout<<"Yes"<<std::endl;
}
}else{
int remain = 0;
if(a==0){
remain = 0;
}else if(b==0){
remain = 1;
}else if(a!=b){
remain = 2;
}else if(a==b){
remain = 3;
}
for(int i = 0;i<m;++i){
if(vecN[i]%4==remain)std::cout<<"Yes"<<std::endl;
else std::cout<<"No"<<std::endl;
}
}
std::cout<<std::endl;
}
int main(){
int t;std::cin>>t;
while(t--){
solve();
}
}
// // xf的代码
// #include <iostream>
// #include <vector>
// int main(){
// int T;
// std::cin >> T;
// while(T--){
// std::vector<int> a(8);
// std::cin >> a[0] >> a[1];
// int m;
// std::cin >> m;
// a[0] %= 3,a[1] %= 3;
// for(int i = 2;i<10;i++){
// a[i] = (a[i - 1] + a[i - 2])%3;
// }
// while(m--){
// int n;
// std::cin >> n;
// if(a[n % 8] == 0){
// std::cout << "Yes" << std::endl;
// }
// else{
// std::cout << "No" << std::endl;
// }
// }
// std::cout << std::endl;
// }
// }