#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
bool cmp(int a,int b)
{
	return a>b;
}
int main(int argc, char** argv) {
	int t;
	cin>>t;
	int n,k;
	cin>>n>>k;
	vector<int> a(n);
	int br1 = 0,br2 = 0;
	for(int i = 0;i<n;i++)
	{
		cin>>a[i];
		if(a[i] == 1)
			br1++;
		if(a[i] == -1)
			br2++;
	}
	sort(a.begin(),a.end());
	if(br1 + br2 == n)
	{
		if(n%2 == 0)
		{
			if(k==0)
			{
				if(br1>br2 && br2 == 0)
				{
					cout<<"NE"<<endl;
				}
				else
				{
					cout<<"DA"<<endl;
				if(br1>br2)
				{
					for(int i = 0;i<br1-br2;i++)
						cout<<1<<" ";
					for(int i = 0;i<br2;i++)
					{
						cout<<1<<" "<<-1<<" ";
					}
				}
				else
				{
					for(int i = 0;i<br2-br1;i++)
						cout<<-1<<" ";
					for(int i = 0;i<br1;i++)
					{
						cout<<-1<<" "<<1<<" ";
					}
				}
				}
			}
			else if(k==2)
			{
				if(br1 <= 1)
					cout<<"NE"<<endl;
				else
				{
					cout<<"DA"<<endl;
					while(br2>=br1)
					{
						cout<<-1<<" "<<-1<<" ";
						br2-=2;
					}			
					for(int i = 0;i<br2;i++)
					{
						cout<<1<<" "<<-1<<" ";
					}
					for(int i = 0;i<br1-br2;i++)
					{
						cout<<1<<" ";
					}
				}
			}
			else
				cout<<"NE"<<endl;
			
		}
		else
		{
			if(k == 1)
			{
				cout<<"DA"<<endl;
				while(br2>=br1)
				{
					cout<<-1<<" "<<-1<<" ";
					br2-=2;
				}	
				for(int i = 0;i<br2;i++)
					cout<<1<<" "<<-1<<" ";
				for(int i = 0;i<br1 - br2;i++)
					cout<<1<<" ";
			}
			else if(k == -1)
			{
				if(br1>=br2 && br1%2==0)
					cout<<"NE"<<endl;
				else if(br2<=1 && br1>0)
					cout<<"NE"<<endl;
				else
				{
					cout<<"DA"<<endl;
					while(br1>=br2)
					{
						cout<<1<<" "<<1<<" ";
						br1-=2;
					}
					for(int i = 0;i<br1;i++)
							cout<<1<<" "<<-1<<" ";
					for(int i =0;i<br2-br1;i++)
						cout<<-1<<" ";
				}
			}
			else 
				cout<<"NE";
		}
	}
	
}