#include <stdio.h>
#define nmax 100009
int N, M, dad[nmax];
void unIon(int x, int y)
{
int i, j, ti, tj, k;
for (i = x, ti = dad[x]; ti > 0; i = ti, ti = dad[i]);
for (j = y, tj = dad[y]; tj > 0; j = tj, tj = dad[j]);
if (i == j) return;
if (dad[i] < dad[j])
for (dad[j] = i, j = y; j != i; k = dad[j], dad[j] = i, j = k);
else if (dad[i] > dad[j])
for (dad[i] = j, i = x; i != j; k = dad[i], dad[i] = j, j = k);
else
for (dad[i]--, dad[j] = i, j = y; j != i; k = dad[j], dad[j] = i, j = k);
}
int doiIoni(int x, int y)
{
int i, j, ti, tj;
for (i = x, ti = dad[x]; ti > 0; i = ti, ti = dad[i]);
for (j = y, tj = dad[y]; tj > 0; j = tj, tj = dad[j]);
return i == j;
}
int main()
{
int i, t, x, y;
freopen("disjoint.in", "r", stdin);
freopen("disjoint.out", "w", stdout);
for (scanf("%d", &N), i = 1; i <= N; dad[i] = -1, ++i);
for (scanf("%d", &M); M; M--)
{
scanf("%d%d%d", &t, &x, &y);
t == 1? unIon(x, y): printf(doiIoni(x, y)? "DA\n": "NU\n");
}
return 0;
}