#include <iostream>
#include <set>
#define int long long
using namespace std;
const int N = 2e5 + 20;
int h[N], p[N];
set<pair<int, int> > q;
signed main()
{
int T;
cin >> T;
while(T -- )
{
q.clear();
int n, k;
cin >> n >> k;
for (int i = 1; i <= n; i ++ )
{
cin >> h[i];
}
for (int i = 1; i <= n; i ++ )
{
cin >> p[i];
}
for (int i = 1; i <= n; i ++)
{
q.insert(make_pair(p[i], h[i]));
}
while(!q.empty())
{
for (set<pair<long long, long long> >::iterator i = q.begin(); i != q.end(); i ++ )
{
pair<int, int> s = *i;
int ph = s.second, at = s.first;
if(ph <= k)
{
q.erase(i);
}
else
{
q.erase(i);
q.insert(make_pair(at, ph - k));
}
}
if(q.empty())
{
break;
}
set<pair<long long, long long> >::iterator i = q.begin();
pair<int, int> s = *i;
int ph = s.second, at = s.first;
k -= at;
if(k <= 0)
{
cout << "NO" << endl;
break;
}
}
if(k > 0)
{
cout << "YES" << endl;
}
}
return 0;
}