#include <bits/stdc++.h>

using namespace std;

void solve()
{
    int t,mxsum=0,mnsum=0,mult=1;
    cin>>t;
    int n,k;
    cin>>n>>k;
    if(k<0){
        mult=-1;
        k=-k;
    }
    multiset<int>st;
    vector<int>a(n);
    for(int i=0;i<n;i++){
        cin>>a[i];
        a[i]*=mult;
        st.insert(a[i]);
    }
    vector<int>mxa(n),mna(n);
    sort(a.begin(),a.end());
    for(int i=0;i<n;i++){
        mxa[i]=a[i];
        mna[i]=a[n-i-1];
    }
    for(int i=0;i<n;i++){
        if(mxsum<=mxa[i])mxsum++;
        else mxsum--;
        if(mnsum<=mna[i])mnsum++;
        else mnsum--;
    }
    if(!(k>=mnsum&&k<=mxsum&&((n-k)%2)==0)){
        cout<<"NE\n";
        return;
    }
    cout<<"DA\n";
    int sum=0,down=(n-k)>>1;
    for(int i=0;i<n;i++){
        auto it=st.lower_bound(sum-down-1);
        auto x=(it==st.end()?prev(it):it);
        if(*x>=sum)sum++;
        else {
            down--;
            sum--;
        }
        cout<<*x<<' ';
        st.erase(x);
    }
    cout<<sum<<'\n';
}

signed main()
{
    ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    solve();
    return 0;
}