#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int comp(pair<int,int> a,pair<int,int> b){
return a.second<b.second;
}
int main()
{
    int t,n,k;
    cin>>t>>n>>k;
    vector<pair<int,int>> a(n); // pos,uvaz
    for(int i=0;i<n;i++){
        int ai; cin>>ai;
        //a[i]={i,ai};
    }
    for(int i=0;i<n;i++)cout<<"test"; return 0;
    sort(a.begin(),a.end(),comp);
   // for(int i=0;i<n;i++){cout<<a[i].first<<')'<<a[i].second<<endl;}//otsortirovano po vozrastaniju
    int pos=(n+k)/2,neg=(n-k)/2;
    if(pos+neg!=n){cout<<"NE"<<endl;return 0;}
   // cout<<"pos:"<<pos<<"neg:"<<neg<<endl;
    vector<pair<int,int>> posval(pos),negval(neg);
    for(int i=neg;i<n;i++){
        posval[i-neg]=a[i];
    }
     for(int i=neg-1;i>=0;i--){
        negval[neg-i-1]=a[i];
    }
   // cout<<"Pos:"<<endl;
   // for(int i=0;i<pos;i++){cout<<posval[i].first<<')'<<posval[i].second<<endl;}
    // cout<<"Neg:"<<endl;
   // for(int i=0;i<neg;i++){cout<<negval[i].first<<')'<<negval[i].second<<endl;}
    int ipos=0,ineg=0;
    vector<int> moves(n); int imove=0;
    int cura=0;
    while(ipos<pos || ineg<neg){

        if(ipos<pos && posval[ipos].second>=cura){
               // cout<<"berem "<<posval[ipos].first<<')'<<posval[ipos].second<<endl;
            cura++;ipos++; moves[imove]=posval[ipos-1].second;imove++;

        }
        else {
        if(ineg<neg && negval[ineg].second<cura){
                //cout<<"berem "<<negval[ineg].first<<')'<<negval[ineg].second<<endl;
            ineg++;cura--;
            moves[imove]=negval[ineg-1].second;imove++;

        }
        else { cout<<"NE"<<endl; }
        }
    }
    cout << "DA" << endl;
    if(t){
        for(int i=0;i<n;i++)cout<<moves[i]<<' ';
    }
    return 0;
}