#include <bits/stdc++.h>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
const int nmax = 105;
class RepRang{
public:
int parent;
int rang;
};
RepRang info[nmax];
int find_rep(int el){
if(el == info[el].parent)
return el;
else
info[el].parent = find_rep(info[el].parent);
return info[el].parent;
}
void Union(int x, int y){
int repx = find_rep(x);
int repy = find_rep(y);
if(info[repx].rang > info[repy].rang)
info[repx].parent = repy;
else if(info[repx].rang > info[repy].rang)
info[repy].parent = repx;
else
{
info[repy].parent = repx;
info[repx].rang++;
}
}
int main()
{
int nr, nrop;
fin >> nr >> nrop;
for(int i = 1; i < nrop; ++i)
{
info[i].parent = i;
info[i].rang = 0;
}
for(int i = 0; i < nrop; ++i)
{
int op, x, y;
fin >> op >> x >> y;
if(op == 1)
Union(x, y);
else if(op == 2)
{
if(find_rep(x) == find_rep(y))
fout << "DA\n";
else
fout << "NU\n";
}
}
return 0;
}