#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
char tape[1024];
int head = 0;
int state = 1;
struct tmtf
{
int to_state;
int marker;
int direction;
};
tmtf transformation_function[15][7];
void init_transformation_function()
{
//(q1,a) -> (q2,a',->)
transformation_function[1][0].to_state = 2;
transformation_function[1][0].marker = 4;
transformation_function[1][0].direction = 1;
//(q1,b) -> (q8,b,-)
transformation_function[1][1].to_state = 8;
transformation_function[1][1].marker = 0;
transformation_function[1][1].direction = 0;
//(q1,c) -> (q-1,c,-)
transformation_function[1][2].to_state = -1;
transformation_function[1][2].marker = 0;
transformation_function[1][2].direction = 0;
//(q8,b) -> (q5,b,-) //check only for b and c
transformation_function[8][1].to_state = 5;
transformation_function[8][1].marker = 0;
transformation_function[8][1].direction = 0;
//(q8,c) -> (q-1,c,-)
transformation_function[8][2].to_state = -1;
transformation_function[8][2].marker = 0;
transformation_function[8][2].direction = 0;
//(q2,a) -> (q2,a,->)
transformation_function[2][0].to_state = 2;
transformation_function[2][0].marker = 0;
transformation_function[2][0].direction = 1;
//(q2,b') -> (q2,b',->)
transformation_function[2][5].to_state = 2;
transformation_function[2][5].marker = 0;
transformation_function[2][5].direction = 1;
//(q2,b) -> (q3,b',->)
transformation_function[2][1].to_state = 3;
transformation_function[2][1].marker = 4;
transformation_function[2][1].direction = 1;
//(q3,b) -> (q3,b,->)
transformation_function[3][1].to_state = 3;
transformation_function[3][1].marker = 0;
transformation_function[3][1].direction = 1;
//(q3,c') -> (q3,c',->)
transformation_function[3][6].to_state = 3;
transformation_function[3][6].marker = 0;
transformation_function[3][6].direction = 1;
//(q3,c) -> (q4,c',<-)
transformation_function[3][2].to_state = 4;
transformation_function[3][2].marker = 4;
transformation_function[3][2].direction = -1;
//(q3,d) -> (q-1,d,-) // we fail because there are more a's and b's and we need to check for c's
transformation_function[3][3].to_state = -1;
transformation_function[3][3].marker = 0;
transformation_function[3][3].direction = 0;
//go back to first a
//(q4,c') -> (q4,c',<-)
transformation_function[4][6].to_state = 4;
transformation_function[4][6].marker = 0;
transformation_function[4][6].direction = -1;
//(q4,b) -> (q4,b,<-)
transformation_function[4][1].to_state = 4;
transformation_function[4][1].marker = 0;
transformation_function[4][1].direction = -1;
//(q4,b') -> (q4,b',<-)
transformation_function[4][5].to_state = 4;
transformation_function[4][5].marker = 0;
transformation_function[4][5].direction = -1;
//(q4,a) -> (q4,a,<-)
transformation_function[4][0].to_state = 4;
transformation_function[4][0].marker = 0;
transformation_function[4][0].direction = -1;
//(q4,a') -> (q1,a',->)
transformation_function[4][4].to_state = 1;
transformation_function[4][4].marker = 0;
transformation_function[4][4].direction = 1;
//we went back to the last a' and we get a(have transformation for this) or b'
//if it's b', we go and check for a c'
//(q1,b') -> (q5,b',->)
transformation_function[1][5].to_state = 5;
transformation_function[1][5].marker = 0;
transformation_function[1][5].direction = 1;
//(q5,b') -> (q5,b',->)
transformation_function[5][5].to_state = 5;
transformation_function[5][5].marker = 0;
transformation_function[5][5].direction = 1;
//
//we have the same number of a and b so we're done (n==m)
//
//(q5,c') -> (q0,c',-)
transformation_function[5][6].to_state = 0;
transformation_function[5][6].marker = 0;
transformation_function[5][6].direction = 0;
//(q5,b) -> (q6,b',->)
transformation_function[5][1].to_state = 6;
transformation_function[5][1].marker = 4;
transformation_function[5][1].direction = 1;
//(q6,b) -> (q6,b,->)
transformation_function[6][1].to_state = 6;
transformation_function[6][1].marker = 0;
transformation_function[6][1].direction = 1;
//(q6,c') -> (q6,c',->)
transformation_function[6][6].to_state = 6;
transformation_function[6][6].marker = 0;
transformation_function[6][6].direction = 1;
//(q6,c) -> (q7,c',<-)
transformation_function[6][2].to_state = 7;
transformation_function[6][2].marker = 4;
transformation_function[6][2].direction = -1;
//(q7,c') -> (q7,c',<-)
transformation_function[7][6].to_state = 7;
transformation_function[7][6].marker = 0;
transformation_function[7][6].direction = -1;
//(q7,b) -> (q7,b,<-)
transformation_function[7][1].to_state = 7;
transformation_function[7][1].marker = 0;
transformation_function[7][1].direction = -1;
//(q7,b') -> (q5,b',->)
transformation_function[7][5].to_state = 5;
transformation_function[7][5].marker = 0;
transformation_function[7][5].direction = 1;
//(q5,c') -> (q5,c',->)
transformation_function[5][6].to_state = 5;
transformation_function[5][6].marker = 0;
transformation_function[5][6].direction = 1;
//we failed
//(q5,c) -> (q-1,c,-)
transformation_function[5][2].to_state = -1;
transformation_function[5][2].marker = 0;
transformation_function[5][2].direction = 0;
//we have same number of b as c (m==p)
//(q6,d) -> (q0,d,-)
transformation_function[6][3].to_state = 0;
transformation_function[6][3].marker = 0;
transformation_function[6][3].direction = 0;
}
void init_tape(char *input)
{
int lchar = strlen(input);
strcpy(tape,input);
//tape[lchar] = 'B';
tape[lchar] = 'd';
tape[lchar+1] = '\n';
}
int main()
{
int T;
char word[1024];
freopen("tm.in","r",stdin);
freopen("tm.out","w",stdout);
scanf("%d",&T);
//init_tape(word);
//int i=0;
int norm_sym = 0;
int new_state;
init_transformation_function();
for(int wcount = 0;wcount<T;wcount++)
{
scanf("%s",word);
init_tape(word);
head = 0;
state = 1;
while((state > 0) && (tape[head] != '\n'))
{
norm_sym = tape[head] - 97;
new_state = transformation_function[state][norm_sym].to_state;
//printf("state:%d ",state);
//printf("to_state:%d ",transformation_function[state][norm_sym].to_state);
//printf("sym:%d ",norm_sym);
tape[head] += transformation_function[state][norm_sym].marker;
//printf("marker:%d ",transformation_function[state][norm_sym].marker);
head += transformation_function[state][norm_sym].direction;
//printf("direction:%d ",transformation_function[state][norm_sym].direction);
//printf("head:%d ",head);
//printf("\n%s",tape);
state = new_state;
// i++;
//printf("\n");
}
//printf("word:\n%s",word);
if(state == 0)
printf("DA\n");
else
printf("NU\n");
}
//cout<<"\nstate:"<<state;
return 1;
}