#include <bits/stdc++.h>
using namespace std;
ifstream f("nivele.in");
ofstream g("nivele.out");
const int NMax = 100001;
int t,n,start,nr,noduri;
int a[NMax];
void dfs_preorder(int nod,int D){
if(nr > noduri || start > n)
return;
nr++;
if(D == a[start]){
start++;
}else{
if(D < a[start]){
dfs_preorder(2 * nod, D + 1);
dfs_preorder(2 * nod + 1, D + 1);
}
}
}
int main()
{
f >> t;
//g << 1.0*sizeof(a)*2/1024/1024 << '\n';
while(t--){
f >> n;
noduri = n * 2 - 1;
for(int i = 1; i <= n; ++i)
f >> a[i];
start = 1;
nr = 0;
dfs_preorder(1,1);
if(start == n + 1 && nr == noduri){
g << "DA" << '\n';
}else{
g << "NU" << '\n';
}
}
return 0;
}