#include <bits/stdc++.h>
using namespace std;
const int MN = 120005;
const int MQ = 120005;
vector<set<int>> sets(MN);
int n, q;
void merge(int u, int v) {
    if (sets[u].size() < sets[v].size()) swap(u, v);
    for (auto x: sets[v]) {
        sets[u].insert(x);
    }
    sets[v] = sets[u];
}
int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cin >> n >> q;
    for (int i = 1; i <= n; i++) {
        sets[i].insert(i);
    }
    for (int qq = 1; qq <= n + q - 1; qq++) {
        char s; cin >> s;
        if (s == 'S') {
            int a, b; cin >> a >> b;
            merge(a, b);
        }
        else if (s == 'Q') {
            int a, b; cin >> a >> b;
            if (sets[a].find(b) != sets[a].end()) cout << "yes\n";
            else cout << "no\n";
        }
        else if (s == 'C') {
            int u; cin >> u;
            int tot = 0;
            for (int i = 1; i <= n; i++) {
                if (sets[i].find(u) != sets[i].end()) {
                    tot++;
                }
            }
            cout << tot << "\n";
        }
    }
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |