#include<stdio.h>
#include<stdlib.h>
typedef struct N {
int x,y;
struct N *u;
}M;
int i,k,c,n,m,s,t,l,d[50001],f[50001];
M *g[50001],*p,*r;
int main() {
freopen("distante.in","r",stdin),freopen("distante.out","w",stdout),scanf("%d",&t);
while(t--) {
l=0,scanf("%d%d%d",&n,&m,&s);
for(i=1;i<=n;i++)
scanf("%d",d+i),f[i]=0;
while(m--) {
scanf("%d%d%d",&i,&k,&c);
p=r=(M*)malloc(sizeof(M));
p->x=k,r->x=i,p->y=r->y=c,p->u=g[i],r->u=g[k],g[i]=p,g[k]=r;
}
if(!d[s])
f[s]=1;
for(i=1;i<=n;i++)
for(p=g[i];p;p=p->u)
if(p->x!=s&&d[p->x]==p->y+d[i])
f[p->x]=1;
for(i=1;i<=n;i++)
if(!f[i])
l=1;
printf("%s\n",!l?"DA":"NU");
}
}