#include <cstdio>
using namespace std;
const int NMAX = 100005;
int x1, y1, N, M, i, op, x, y, t[NMAX];
int tata(int x)
{
if (x == t[x]) return x;
else return tata(t[x]);
}
int main()
{
freopen("disjoint.in", "r", stdin);
freopen("disjoint.out", "w", stdout);
scanf("%d%d\n", &N, &M);
for (i = 1; i <= N; i++)
t[i] = i;
for (i = 1; i <= M; i++)
{
scanf("%d%d%d\n", &op, &x, &y);
if (op == 1)
{
x1 = tata(x);
y1 = tata(y);
t[y1] = x1;
}
else
{
x1 = tata(x);
y1 = tata(y);
if (x1 == y1) printf("DA\n");
else printf("NU\n");
}
}
return 0;
}