#include <fstream>
#include <vector>
#include <climits>
using namespace std;
fstream cin("disjoint.in");
ofstream cout("disjoint.out");
int t[100001];
int n, m, p;
int rad(int nod) {
if (t[nod] == nod) return nod;
return rad(t[nod]);
}
void prn(int a, int b) {
if (t[a] > t[b])
t[a] = b;
else
t[b] = a;
}
int main() {
cin >> n >> m;
for (int i = 1; i <= n; ++i)
t[i] = i;
for (int i = 1; i <= m; ++i) {
int a, b;
cin >> p >> a >> b;
if (p == 1) prn(rad(a), rad(b));
else cout << (rad(a) == rad(b) ? "DA" : "NU") << '\n';
}
return 0;
}