#include<bits/stdc++.h>
using namespace std;
int t;
int main()
{
cin>>t;//t组数据
while(t--)
{
int n,c,d,b[250005],a[500][500],f=0;//a是模拟数组 b是输入数组 f标记有没有出现过
cin>>n>>c>>d;
for(int i=1;i<=n*n;i++)
{
cin>>b[i];
}//输入
sort(b+1,b+1+n*n);
a[1][1]=b[1];//确定第一位
for(int i=1;i<=n;i++)
{
for(int j=1;i<=n;j++)
{
a[i+1][j]=a[i][j]+c;
a[i][j+1]=a[i][j]+d;//往数组里填数
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(b[j]==a[i][j])
{
f=1;
}//判断累进正方形里的每个数有没有输入过
}
}
if(f!=1) cout<<"NO"<<endl;
else cout<<"YES"<<endl;//有没输入过就输出no否则yes
}
return 0;
}