You have an array a_1, a_2, ..., a_n. All a_i are positive integers.

In one step you can choose three distinct indices i, j, and k (i ≠ j; i ≠ k; j ≠ k) and assign the sum of a_j and a_k to a_i, i. e. make a_i = a_j + a_k.

Can you make all a_i lower or equal to d using the operation above any number of times (possibly, zero)?

Input

The first line contains a single integer t (1 ≤ t ≤ 2000) — the number of test cases.

The first line of each test case contains two integers n and d (3 ≤ n ≤ 100; 1 ≤ d ≤ 100) — the number of elements in the array a and the value d.

The second line contains n integers a_1, a_2, ..., a_n (1 ≤ a_i ≤ 100) — the array a.

Output

For each test case, print YES, if it's possible to make all elements a_i less or equal than d using the operation above. Otherwise, print NO.

You may print each letter in any case (for example, YES, Yes, yes, yEs will all be recognized as positive answer).

Example

Input


3
5 3
2 3 2 5 4
3 4
2 4 4
5 4
2 1 5 3 6


Output


NO
YES
YES

Note

In the first test case, we can prove that we can't make all a_i ≤ 3.

In the second test case, all a_i are already less or equal than d = 4.

In the third test case, we can, for example, choose i = 5, j = 1, k = 2 and make a_5 = a_1 + a_2 = 2 + 1 = 3. Array a will become [2, 1, 5, 3, 3].

After that we can make a_3 = a_5 + a_2 = 3 + 1 = 4. Array will become [2, 1, 4, 3, 3] and all elements are less or equal than d = 4.
/******************************
     AUTHOR KRISH MURARKA
*******************************/
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
#define mod 1000000007
#define modulo 998244353
#define popcount    __builtin_popcount     //used to count number of set bits in a integer
#define llpopcount  __builtin_popcountll   
#define parity      __builtin_parity // returns true(1) if number has odd parity i.e odd no of set bits
#define llparity   __builtin_parityll 
#define leadzero    __builtin_clz  //returns number of leading zeros of a 32 bit int 
#define llleadzero  __builtin_clzll // returns number of leading zero of a 64 bit int 
#define trailzero    __builtin_ctz  // returns number of trailing zero 
#define lltrailzero   __builtin_ctzll 
#define generate default_random_engine generator
#define uid(a, b) uniform_int_distribution<int>(a, b)
#define F first
#define S second
#define pb push_back
#define popb pop_back
#define fin(i,c,n) for(int i=c;i<n;i++)
#define fast ios_base::sync_with_stdio(0); cin.tie(0);cout.tie(0);
ll power1(ll a, ll b)
{
  ll result=1;
  while(b)
  {
    if(b%2) result= (result*a)%mod;
    a=(a*a)%mod;
    b=b/2;
  }
  return result;
}
ll MOD_ADD(ll k)
{
    if(k>=mod)
      k-=mod;
    return k;
}
ll gcd(ll a, ll b)
{
    if (b == 0)
        return a;
    return gcd(b, a % b); 
}
void primeFactors(int n)  
{    
    while (n % 2 == 0)  
    {  
        cout << 2 << " ";  
        n = n/2;  
    }  
    for (int i = 3; i <= sqrt(n); i = i + 2)  
    {   
        while (n % i == 0)  
        {  
            cout << i << " ";  
            n = n/i;  
        }  
    }  
    if (n > 2)  
        cout << n << " ";  
}
bool cmp(pair<ll,ll> p1, pair <ll,ll> p2)
{
    if(p1.first>p2.first)
      return true;
    else if(p1.first==p2.first)
      {
        if(p1.second>p2.second)
          return true;
      }
    return false;
}
long long MOD_DIV(long long p, long long q) 
{
    long long  exponent=modulo-2; 
    while (exponent) { 
 
        if (exponent & 1) { 
            p = (p * q) % modulo; 
        } 
        q = (q * q) % modulo; 
 
        exponent >>= 1; 
    } 
    return p; 
} 
ll fact(int n)
{
  ll ans=1;
  for(int i=1;i<=n;i++)
    ans*=i;
  return ans;
}
void read_input()
{
  #ifndef ONLINE_JUDGE
freopen("inputA.txt","r",stdin);
freopen("outputA.txt","w",stdout);
#endif
}
void solving()
{
  int n,d;
  cin>>n>>d;
  ll a[n];
  for(int i=0;i<n;i++)
    cin>>a[i];
  sort(a,a+n);
  if( n>=2 && a[0]+a[1]<=d)
    cout<<"YES\n";
  else
  {
    for(int i=0;i<n;i++)
    {
      if(a[i]>d)
      {
        cout<<"NO\n";
        return;
      }
    }
    cout<<"YES\n";
  }
}
int main()
{
    fast;
    read_input();
    int t;
    cin>>t;
    while(t-->0)
    {
      solving();
    }
    //solving();
    return 0;
}
