#include <bits/stdc++.h>
using namespace std;

#define int long long
#define pb          push_back
#define mp          make_pair
#define ll          long long
#define pii         pair<int, int>
#define vi          vector<int>
#define vii         vector<pii>
#define mi          map<int, int>
#define all(a)      (a).begin(),(a).end()
#define x           first
#define y           second
#define sz(x)       (int)x.size()
#define endl        '\n'
#define getunique(v) {sort(v.begin(), v.end()); v.erase(unique(v.begin(), v.end()), v.end());}

#define rep(i,a,b)  for(int i=a;i<b;i++)
#define rev(i,a,b)  for(int i=a;i>=b;i--)
#define fset(it,s)  for(auto it = s.begin(); it != s.end(); it++)

#define lb          lower_bound
#define ub          upper_bound
#define bg(i)       i.begin()
#define ed(i)       i.end()
#define mem(a)	    memset(a, 0, sizeof(a))
 
#define track(x)                 cerr<<#x<<": "<<x<<endl
#define track2(x, y)             cerr<<#x<<": "<<x<<" | "<<#y<<": "<<y<<endl
#define track3(x, y, z)          cerr<<#x<<":" <<x<<" | "<<#y<<": "<<y<<" | "<<#z<<": "<<z<<endl
#define track4(a, b, c, d)       cerr<<#a<<": "<<a<<" | "<<#b<<": "<<b<<" | "<<#c<<": "<<c<<" | "<<#d<<": "<<d<<endl
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

void amax(int &a, int b) { a = max(a, b);}
void amin(int &a, int b) { a = min(a, b);}
const int INF = 5e18;
#define MOD         1000000007
#define N	    	600001 //for stack, queues decrease the N to 1e5


//have, req, currAns, lo, hi, id, idx, asz, pr, mp, ka, kb;
void solve() {
    int n, x;
    cin>>n>>x;  
    int sum = 0;
    vi a(n);
    for(int &i : a) {
        cin>>i;
        sum += i;
    }
    if(sum == x) {
        cout<<"NO"<<endl;
    }
    else {
        cout<<"YES"<<endl;
        sort(all(a));
        int ind = 0, sum = 0, ok = 1;
        while(ind < n) {
            sum += a[ind];
            if(sum == x) {
                cout<<a[ind+1]<<" "<<a[ind]<<" ";
                sum += a[ind+1];
                ind = ind+2;
            }
            else {
                cout<<a[ind]<<" ";
                ind++;
            }
        }
        cout<<endl;
    }


}
signed main() {
	ios::sync_with_stdio(false);
	cout<<fixed<<setprecision(20);
	cin.tie(0);  //for interactive problem comment this
	cout.tie(0); // and this
    //precision problem use double value not all

	int t = 1; cin>>t;
	while(t--){
		solve();
	}
}
