#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;
using pii = pair<int, int>;
using pil = pair<int, ll>;
using pli = pair<ll, int>;
using pll = pair<ll, ll>;
const ll MOD = 1e9 + 7;
const int inf = (1 << 30) - 1;
const ll INF = (1LL << 60) - 1;
const ld EPS = 1e-10;
template <typename T>
bool chmax(T &x, const T &y) {
  return (x < y) ? (x = y, true) : false;
};
template <typename T>
bool chmin(T &x, const T &y) {
  return (x > y) ? (x = y, true) : false;
};
int main() {
  int T;
  cin >> T;
  while (T--) {
    int N, K, L;
    cin >> N >> K >> L;
    int d[N];
    for (int i = 0; i < N; i++) {
      cin >> d[i];
      d[i] = L - d[i];
    }
    int pos = -inf;
    bool ans = true;
    for (int i = 0; i < N; i++) {
      if (d[i] < 0) {
        ans = false;
        break;
      } else if (d[i] >= K)
        pos = -inf;
      else if (pos == -inf)
        pos = -d[i];
      else if (d[i] <= pos) {
        ans = false;
        break;
      } else if (pos < -d[i])
        pos = -d[i];
      else
        pos++;
    }
    cout << (ans ? "Yes" : "No") << endl;
  }
}
