#include <bits/stdc++.h>
#define pb push_back
#define pii pair<int,int>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int parinte[100001],rang[100001];
int find_parent(int nod)
{
vector<int>v;
while(parinte[nod]!=nod)
{
v.pb(nod);
nod=parinte[nod];
}
for(int i:v)
parinte[i]=nod;
return nod;
}
void unite(int nod1,int nod2)
{
if(rang[nod1]<rang[nod2])
parinte[nod1]=nod2;
else if(rang[nod1]>rang[nod2])
parinte[nod2]=nod1;
else
{
parinte[nod1]=nod2;
rang[nod2]++;
}
}
int main()
{
int n,m,t,st,dr;
fin>>n>>m;
for(int i=1;i<=n;i++)
{
parinte[i]=i;
rang[i]=1;
}
while(m--)
{
fin>>t>>st>>dr;
st=find_parent(st);
dr=find_parent(dr);
if(t==1)
unite(st,dr);
else
{
if(st==dr)
fout<<"DA\n";
else fout<<"NU\n";
}
}
return 0;
}