#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
int t, n, k;
int niz[200005];
bool sviIsti = false;
int main()
{
    cin >> t;
    cin >> n >> k;
    for(int i = 1; i <= n; i++){
        cin >> niz[i];
    }
    sort(niz + 1, niz + n + 1);
    if(niz[1] == niz[n]){
        if((k >= niz[1] + 2) or (k <= niz[1] - 2))
            cout << "NE" << endl;
        else if(abs(k) - abs(niz[1]) == 1){
            int povecavanje = abs(niz[1]) + 1;
            if((n - povecavanje) % 2 == 0){
                cout << "DA" << endl;
                if(t == 1){
                    for(int i = 1; i <= n; i++)
                        cout << niz[i] << " ";
                }
            }
        }
    }
    if(niz[1] == -1 and niz[n] == 1){
        int br1 = 0, brminus1 = 0;
        for(int i = 1; i <= n; i++){
            if(niz[i] == -1)
                brminus1++;
            else
                br1++;
        }
        if(k == 0){
            if(br1 == brminus1){
                cout << "DA" << endl;
                if(t == 1)
                    for(int i = 1; i <= n; i++)
                        cout << niz[i];
            }
            else
                cout << "NE" << endl;
        }
        if(k >= 2 or k <= -2)
            cout << "NE" << endl;
        else{

        }
    }
    return 0;
}