#include <iostream>
using namespace std;
#define endl '\n'
const int MAXN=1e5+10;
long long a[MAXN];
int str[64];
char ans[MAXN];
int main () {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    int t, n;
    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];
        int br=0, s;
        while (k>0) {
            str[br]=k%2;
            br++;
            k/=2;
        }
        bool fl, ok=true;
        for (int i=n-1;i>=1;i--) {
            br=s=0;
            fl=false;
            long long kopie=a[i];
            while (a[i]>0) {
                if (a[i]%2!=str[br] && str[br]!=2) {
                    if (str[br]==1) fl=true;
                    else s++;
                }
                br++;
                a[i]/=2;
            }
            if (fl && s>0) {
                ok=false;
                break;
            }
            if (fl || (!fl && s==0)) {
                ans[i-1]='|';
                br=0;
                while (kopie>0) {
                    if (kopie%2==1 && str[br]==1) str[br]=2;
                    br++;
                    kopie/=2;
                }
            } else {
                ans[i-1]='&';
                while (kopie>0) {
                    if (kopie%2==0 && str[br]==0) str[br]=2;
                    br++;
                    kopie/=2;
                }
            }
        }
        br=0;
        while (a[n-1]>0) {
            if (str[br]!=2 && a[n-1]%2!=str[br]) ok=false;
            a[n-1]/=2;
        }
        if (!ok) cout << "NO\n";
        else {
            cout << "YES\n";
            for (int i=0;i<n-1;i++) cout << ans[i];
            cout << endl;
        }
    }
    return 0;
}

