#include <bits/stdc++.h>
using namespace std;
using ll=long long;
#define endl "\n"
///freopen("input.txt", "r", stdin);
///freopen("output.txt", "w", stdout);

///ako je k negativan sve *(-1)
void solve(){
    int t;
    cin>>t;

    int n,k;
    cin>>n>>k;

    bool neg=false;
    if(k<0){
        k*=(-1);
        neg=true;
    }


    vector<int>a(n);
    for(int i=0;i<n;i++){
        cin>>a[i];
        if(neg)a[i]*=(-1);
    }
    sort(a.begin(),a.end());




    if(a[0]==a[n-1]){
        int br=a[0];
        if(k>br+1 || k>n){
            cout<<"NE\n"<<endl;
            return;
        }

        if(k<br){
            if(k==n){
                cout<<"DA"<<endl;
                if(t){
                    for(auto x:ans){
                        if(neg){
                            cout<<x*(-1)<<" ";
                            continue;
                        }
                        cout<<x<<" ";
                    }
                }
                return;
            }
            else{
                cout<<"NE"<<endl;
                return;
            }
        }
        if(k==br){
            int sz=n-k;
            if(sz%2==0){
                cout<<"DA"<<endl;
                if(t){
                    for(auto x:ans){
                        if(neg){
                            cout<<x*(-1)<<" ";
                            continue;
                        }
                        cout<<x<<" ";
                    }
                }
                return;
            }
            else{
                cout<<"NE\n";
                return;
            }
        }
        if(k==br+1){
            int sz=n-k;
            if(sz%2==1){
                cout<<"DA"<<endl;
                if(t){
                    for(auto x:ans){
                        if(neg){
                            cout<<x*(-1)<<" ";
                            continue;
                        }
                        cout<<x<<" ";
                    }
                }
                return;
            }
            else{
                cout<<"NE\n";
                return;
            }
        }
    }














    ///3p
//    if(a[0]==a[n-1]){
//        int br=a[0];
//        if(k>br+1 || k>n){
//            cout<<"NE\n"<<endl;
//            return;
//        }
//        if(n==k){
//            cout<<"DA"<<endl;
//            if(t){
//                for(auto x:a){
//                    cout<<x<<" ";
//                }cout<<endl;
//            }
//            return;
//        }
//
//        if(k){
//
//
//
//
//
//
//        }
//
//        if(n<=br+1){
//            cout<<"DA"<<endl;
//            if(t){
//                for(auto x:a){
//                    cout<<x<<" ";
//                }cout<<endl;
//            }
//            return;
//        }
//
//        int sz=n-k;
//
//        if(sz&1){
//            cout<<"NE"<<endl;
//            return;
//        }
//
//        cout<<"DA"<<endl;
//        if(t){
//            for(auto x:a){
//                cout<<x<<" ";
//            }cout<<endl;
//        }
//        return;
//    }





    ///k pozitivnih brojeva moze i nula
    ///(n-k)/2 da sa +1
    ///(n-k)/2 da sa -1

//
//    vector<int>ans;
//
//    int rez=0;
//    int neg=(n-k)/2,poz=(n-k)/2+k;
//    for(int i=0;i<neg;i++){
//
//    }
//
//
//
//
//
//
//
//    cout<<"DA"<<endl;
//    for(auto x:ans){
//        if(neg){
//            cout<<x*(-1)<<" "
//            continue;
//        }
//        cout<<x<<" ";
//    }cout<<endl;
}
int main(){
    ios_base::sync_with_stdio(false);cin.tie(0);
    int t=1;
    cin>>t;
    while(t--)solve();
    return 0;
}