#include <fstream>
#include<vector>
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
int v[1000003], w[100003];
int radacina(int n)
{
if(v[n] == n)
return n;
return radacina(v[n]);
}
void pereche(int n1, int n2)
{
int r1 = radacina(n1), r2 = radacina(n2);
if(w[r1] < w[r2])
{
v[r1] = r2;
w[r2] ++;
}
else
{
v[r2] = r1;
w[r1] ++;
}
}
int main()
{
int n, m;
f >> n >> m;
for(int i = 1; i <= n; ++i)
{
v[i] = i;
w[i] = 1;
}
for(int i = 0; i < m; ++i)
{
int p, x, y;
f >> p >> x >> y;
if (p == 1)
pereche(x,y);
else
{
if (radacina(x) == radacina(y))
g << "DA\n";
else
g<< "NU\n";
}
}
}