#include <iostream>
using namespace std;
const int MAXN=1e3+25;
long long a[MAXN];
int dp[MAXN][MAXN];
char op[MAXN];
int main () {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    int t, n, br;
    long long k;
    cin >> t;
    for (int test=0;test<t;test++) {
        cin >> n >> k;
        for (int i=0;i<n;i++) cin >> a[i];
        if (n<=20) {
            bool ok=false;
            for (int mask=0;mask<(1<<(n-1));mask++) {
                int kopie=mask;
                for (int i=0;i<n-1;i++) {
                    if (kopie%2==1) op[i]='|';
                    else op[i]='&';
                    kopie/=2;
                }
                long long cur=a[0];
                for (int i=0;i<n-1;i++) {
                    if (op[i]=='|') cur=(cur|a[i+1]);
                    else cur=(cur&a[i+1]);
                }
                if (cur==k) {
                    ok=true;
                    break;
                }
            }
            if (!ok) cout << "NO\n";
            else {
                cout << "YES\n";
                for (int i=0;i<n-1;i++) cout << op[i];
                cout << endl;
            }
        } else {
            ///cout << f(n-1,k) << endl;
        }
    }
    return 0;
}
