#include <bits/stdc++.h>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int const penis=1e5;
int N, M, root[penis], op, x, y;
int getRoot(int nod){
if(nod==root[nod])
return nod;
root[nod]=getRoot(root[nod]);
return root[nod];
}
void connectNodes(int x, int y){
int rootX=getRoot(x);
int rootY=getRoot(y);
root[rootY]=rootX;
}
void checkRoot(int x, int y){
int rootX=getRoot(x);
int rootY=getRoot(y);
if(rootX==rootY)
fout<<"DA"<<endl;
else
fout<<"NU"<<endl;
}
int main(){
fin>>N>>M;
for(int i=1; i<=N; i++)
root[i]=i;
for(;M;M--){
fin>>op>>x>>y;
if(op==1)
connectNodes(x,y);
else
checkRoot(x,y);
}
}