#include <bits/stdc++.h>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
const int Nmax = 100000 + 5;
int n, m, p[Nmax];
int parinte(int nod)
{
if(nod == p[nod])return nod;
return parinte(p[nod]);
}
int main()
{
fin >> n >> m;
for(int i = 1; i <= n; ++i)p[i] = i;
for(int i = 1, a, b, v; i <= m; ++i)
{
fin >> v >> a >> b;
if(v == 1)
p[parinte(a)] = p[parinte(b)];
else
{
if(p[parinte(a)] == p[parinte(b)])fout << "DA\n";
else fout << "NU\n";
}
}
//nod1 , nod2;
//se undesc multimile prin parinti
//p[parinte(nod1)] = p[parinte(nod2)];
return 0;
}