#include <bits/stdc++.h>
using namespace std;
inline int Isdigit(char c) {
  if (c < '0' || c > '9') return 0;
  return 1;
}
template <class T>
T read() {
  register T x = 0, flag = 1;
  register char ch;
  while (!Isdigit(ch = getchar()))
    if (ch == '-') flag = -1;
  while (Isdigit(ch)) x = x * 10 + (ch & 15), ch = getchar();
  return x * flag;
}
template <class T>
inline void write(T x) {
  if (x < 0) putchar('-'), x = -x;
  if (x >= 10) write(x / 10);
  putchar(x % 10 + '0');
}
template <class T>
inline bool Chkmax(T& x, const T& y) {
  return x < y ? x = y, true : false;
}
template <class T>
inline bool Chkmin(T& x, const T& y) {
  return x > y ? x = y, true : false;
}
int gcd(int x, int y) {
  if (y == 0)
    return x;
  else
    return gcd(y, x % y);
}
const int maxn = 202020;
int T;
int n, m, x;
int cmp(int x, int y) { return x > y; }
int a[maxn], b[maxn];
int main() {
  T = read<int>();
  while (T--) {
    n = read<int>();
    x = read<int>();
    for (int i = 1; i <= n; i++) a[i] = read<int>();
    for (int j = 1; j <= n; j++) b[j] = read<int>();
    sort(a + 1, a + 1 + n);
    sort(b + 1, b + 1 + n, cmp);
    int ok = 0;
    for (int i = 1; i <= n; i++) {
      if (a[i] + b[i] > x) ok = 1;
    }
    if (ok == 1)
      puts("No");
    else
      puts("Yes");
  }
}
