#include<fstream>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int n, m;
int initial(int x, int* p)
{
if (p[x] == x)
return x;
else
initial(p[x], p);
}
int main()
{
fin >> n >> m;
int* dis = new int[n + 1];
for (int i = 1; i <= n; i++)
dis[i] = i;
int op, x, y;
while (m--)
{
fin >> op >> x >> y;
int aux1 = initial(x, dis), aux2 = initial(y, dis);
if (op == 1)
{
if (aux1 < aux2)
dis[aux2] = aux1;
else
dis[aux1] = aux2;
}
else
if (aux1 != aux2)
fout << "NU\n";
else
fout << "DA\n";
}
delete[] dis;
return 0;
}