#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define l long
#define in int
#define fo(i, n) for (i = 0; i < n; i++)
#define si(x) scanf('%d', &x)
#define sl(x) scanf('%lld', &x)
#define ss(s) scanf('%s', s)
#define pi(x) printf('%d', x)
#define pl(x) printf('%lld', x)
#define ps(s) printf('%s', s)
#define pb push_back
#define mp make_pair
#define F first
#define S second
#define all(x) x.begin(), x.end()
#define clr(x) memset(x, 0, sizeof(x))
#define sortall(x) sort(all(x))
typedef pair<int, int> pii;
typedef pair<ll, ll> pl;
typedef vector<int> vi;
typedef vector<ll> vl;
typedef vector<pii> vpii;
#define INF 1000000000
#define NMAX 50003
string file = "distante";
//ifstream fin("citire.in");
ifstream fin(file+".in");
ofstream fout(file+".out");
int n,m,a,b,c,d[NMAX],f[NMAX],s,t;
int ok,i;
int main()
{
fin>>t;
for(;t--;)
{
fin>>n>>m>>s;
for(i=1;i<=n;i++){fin>>d[i];f[i]=0;}ok=0;f[s]=1;
for(i=1;i<=m;i++)
{
fin>>a>>b>>c;
if(d[a]>d[b]) swap(a,b);
if(d[b]==d[a]+c) f[b]=1;
if(d[b]>d[a]+c) ok=1;
}
for(i=1;i<=n;i++) if(!f[i]) ok=1;
if(ok==1) fout<<"NU\n";
else fout<<"DA\n";
}
return 0;
}