#include <bits/stdc++.h> using namespace std; const int MAX_V = 30010; int child[MAX_V]; int under[MAX_V]; int cnt[MAX_V]; void init() { for (int i = 0; i < MAX_V; i++) child[i] = i, under[i] = 0, cnt[i] = 1; } int find(int x) { int temp; if (x != child[x]) { temp = find(child[x]); under[x] += under[child[x]]; child[x] = temp; } return child[x]; } void unite(int x, int y) { x = find(x); y = find(y); under[x] = cnt[y]; cnt[y] += cnt[x] ; child[x] = y; } int main(int argc, char const *argv[]) { int n, a, b; char cater; cin >> n; init(); while (n--) { cin >> cater; if (cater == 'M') { cin >> a >> b; unite(a, b); } else { cin >> a; find(a); cout << under[a] << endl; } } return 0; }