#include <bits/stdc++.h>
using namespace std;
int parents[100005],rnk[100005];
int fiind(int a){
if(parents[a]==a)return a;
return parents[a]=fiind(parents[a]);
}
void onion(int a,int b){
int x=fiind(a);
int y=fiind(b);
if(x!=y){
if(rnk[x]==rnk[y]){
rnk[x]++;
}
if(rnk[x]<rnk[y])swap(x,y);
parents[y]=x;
}
return;
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
ifstream cin("disjoint.in");
ofstream cout("disjoint.in");
int n,k;
cin>>n>>k;
for(int i=1;i<=n;i++){
parents[i]=i;
}
while(k--){
int a,b,c;
cin>>a>>b>>c;
if(a==1){
onion(b,c);
}
else{
cout<<((fiind(b)==fiind(c))?"DA\n":"NU\n");
}
}
return 0;
}