#include <fstream>
#include <vector>
using namespace std;
#define dmax 100001
#define pb push_back
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
vector <int> v[dmax];
int r[dmax], n, m;
void comb(int a, int b)
{
a=r[a];
b=r[b];
int ca=a;
if(v[a].size()>v[b].size())
{
r[b]=a;
v[a].pb(b);
for(int i=0;i<v[b].size();i++)
{
v[a].pb(v[b][i]);
r[v[b][i]]=a;
}
}
if(v[a].size()<=v[b].size())
{a=b;
b=ca;
r[b]=a;
v[a].pb(b);
for(int i=0;i<v[b].size();i++)
{
v[a].pb(v[b][i]);
r[v[b][i]]=a;
}
}
}
bool ver(int a,int b)
{
return r[a]==r[b];
}
int main()
{int a, b, k;
fin >> n >> m;
for(int i=1;i<=n;i++)
r[i]=i;
for(int i=1; i<=m; i++)
{
fin >> k >> a >> b;
if(k==1)
comb(a,b);
if(k==2)
if(ver(a,b))
fout<<"DA\n";
else fout<<"NU\n";
}
return 0;
}