#include <bits/stdc++.h>
using namespace std;
int n,k;
vector<int> a;
bool probajsve(int inx, vector<int>& tmp,vector<bool>& used){
    if(inx == n){
        int p=0;
        for(int i=0; i<n; i++){
            if(tmp[i]>=p)p++;
            else p--;
        }
        return p==k;
    }

    else {
        bool m=false;
        for(int i=0; i<n; i++){
            if(!used[i]){
                used[i]=true;
                tmp[inx]=a[i];
                m = m || probajsve(inx+1,tmp,used);
                used[i]=false;
            }
        }
        return m;
    }
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int t; cin >> t;
    cin >> n >> k;
    a.resize(n,0);
    for(int i=0; i<n; i++)cin >> a[i];
    sort(a.begin(),a.end());
    int p=0;
    for(int i=0; i<n; i++){
        if(a[i]>=p)p++;
        else p--;
    }
    if(p==k){
        cout << "DA\n";
        for(int x : a)cout << x << ' ';
    }
    else if(n<=8){
        vector<int> tmp(n,0);
        vector<bool> used(n,false);
        if(probajsve(0,tmp,used)){
            cout << "DA\n";
            for(int x : tmp)cout << x << ' ';
        }
        else cout << "NE\n";
    }
    else cout << "NE";
    return 0;
}