#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
long long t,n,k;
cin >>  t;
cin >> n >> k;
vector<long long> a(n);
for(long long i=0;i<n;i++){
    cin >> a[i];
}
sort(a.begin(),a.end());
//for(auto i:a) cout << i << " ";
//cout  << endl << endl;
if(n%2!=k%2 || n<k || a[n-1]<=k-1 || a[0]>k){
    cout << "NE \n";
    return 0;
}
long long neg=(n-k)/2;
long long poz=n-neg;
long long ineg=neg-1;
long long ipoz=neg;
vector<long long> res;
long long tr=0;
for(long long i=0;i<n;i++){
      //  cout << a[ipoz] << " " <<a[ineg] <<  " "<< ipoz << " " << ineg << endl;

    if(a[ineg]==-200010){
        ineg--;
    }
    if(ineg>=0 && a[ineg]<tr){
        res.push_back(a[ineg]);
        ineg--;
        tr--;
    }
    else if(ipoz<n && a[ipoz]>=tr){
        res.push_back(a[ipoz]);
        tr++;
        ipoz++;
    }
    else{
            bool RR=false;
        for(long long j=ineg;j>=0;j--){
            if(a[j]!=-200010 && a[j]<tr){
                if(j==ineg)ineg--;
                tr--;
                res.push_back(a[j]);
                a[j]=-200010;
                RR=true;

            }
        }
    if(!RR){
        cout << "NE \n";
        return 0;
    }
    }
}
if(tr!=k){
    cout << "NE";
    return 0;
}
cout << "DA \n";
if(t==1){
    for(auto i:res) cout << i << " ";
}
cout << "\n";
return 0;
}