#include #include #include using namespace std; const int maxn = 1e5 + 10; const int INF = 1e9; int root[maxn]; bool check(int A, int B) { return root[A] == root[B]; } void unite(int A, int B) { int tmp = root[A]; for(int i = 0; i < maxn; i++) { if(root[i] == tmp) { root[i] = root[B]; } } } int main() { for(int i = 0; i < maxn; i++) { root[i] = i; } while(true) { string s; cin >> s; if(s == "union") { int a, b; cin >> a >> b; unite(a, b); } else { int a, b; cin >> a >> b; if(check(a, b)) { cout << "YES" << endl; } else { cout << "NO" << endl; } } } return 0; }