#include <iostream>
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define fastt ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define sp " "
#define pb push_back
#define all(x) x.begin(),x.end()
#define ff first
#define ss second
#define nl "\n"
void solve()
{
ll n, k, x;
cin>>n>>k;
vector<ll>v(n);
for(ll i=0; i<n; i++)
{
cin>>x;
v[i] = x % k;
}
map<ll,ll>freq;
for(ll i=0; i<n; i++)
{
cin>>x;
freq[x%k]++;
}
/// x = 2 k = 5 then x+k=7 x - k = 3; x%k = 2, (x+k) %k = 2 [similar to x%k], (x-k)%k = 3[did abs thus val changes, similar to k - (x%k)]
/// So need to Check 2 condition, i) is v[i]%k is present or ii) is k - (v[i]%k) is present
for(ll i=0; i<n; i++)
{
if(freq[v[i]]) freq[v[i]]--;
else
{
x = k - v[i];
if(freq[x]) freq[x]--;
else
{
cout<<"NO"<<endl;
return;
}
}
}
for(auto &it : freq)
{
/// cout<<it.ff<<sp<<it.ss<<endl;
if(it.ss != 0)
{
cout<<"NO"<<endl;
return;
}
}
cout<<"YES"<<endl;
}
int main()
{
ll t = 1;
cin>>t;
while(t--)
{
solve();
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgZmFzdHQgaW9zOjpzeW5jX3dpdGhfc3RkaW8oMCk7Y2luLnRpZSgwKTtjb3V0LnRpZSgwKTsKI2RlZmluZSBzcCAiICIKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBhbGwoeCkgeC5iZWdpbigpLHguZW5kKCkKI2RlZmluZSBmZiBmaXJzdAojZGVmaW5lIHNzIHNlY29uZAojZGVmaW5lIG5sICAiXG4iCgp2b2lkIHNvbHZlKCkKewogICAgbGwgbiwgaywgeDsKICAgIGNpbj4+bj4+azsKICAgIAogICAgdmVjdG9yPGxsPnYobik7CiAgICBmb3IobGwgaT0wOyBpPG47IGkrKykKICAgIHsKICAgICAgICBjaW4+Png7CiAgICAgICAgdltpXSA9IHggJSBrOwogICAgfQoKICAgIG1hcDxsbCxsbD5mcmVxOwogICAgZm9yKGxsIGk9MDsgaTxuOyBpKyspCiAgICB7CiAgICAgICAgY2luPj54OwogICAgICAgIGZyZXFbeCVrXSsrOwogICAgfQoKICAgIC8vLyB4ID0gMiBrID0gNSB0aGVuIHgraz03IHggLSBrID0gMzsgeCVrID0gMiwgKHgraykgJWsgPSAyIFtzaW1pbGFyIHRvIHgla10sICh4LWspJWsgPSAzW2RpZCBhYnMgdGh1cyB2YWwgY2hhbmdlcywgc2ltaWxhciB0byBrIC0gKHglayldCiAgICAvLy8gU28gbmVlZCB0byBDaGVjayAyIGNvbmRpdGlvbiwgaSkgaXMgdltpXSVrIGlzIHByZXNlbnQgb3IgaWkpIGlzIGsgLSAodltpXSVrKSBpcyBwcmVzZW50CgogICAgZm9yKGxsIGk9MDsgaTxuOyBpKyspCiAgICB7CiAgICAgICAgaWYoZnJlcVt2W2ldXSkgZnJlcVt2W2ldXS0tOwogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIHggPSBrIC0gdltpXTsKICAgICAgICAgICAgaWYoZnJlcVt4XSkgZnJlcVt4XS0tOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNvdXQ8PCJOTyI8PGVuZGw7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgZm9yKGF1dG8gJml0IDogZnJlcSkKICAgIHsKICAgICAgICAvLy8gY291dDw8aXQuZmY8PHNwPDxpdC5zczw8ZW5kbDsKICAgICAgICBpZihpdC5zcyAhPSAwKQogICAgICAgIHsKICAgICAgICAgICAgY291dDw8Ik5PIjw8ZW5kbDsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBjb3V0PDwiWUVTIjw8ZW5kbDsKfQoKaW50IG1haW4oKQp7CiAgICBsbCB0ID0gMTsKICAgIGNpbj4+dDsKICAgIHdoaWxlKHQtLSkKICAgIHsKICAgICAgICBzb2x2ZSgpOwogICAgfQogICAgcmV0dXJuIDA7Cn0K