#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <queue>
#include <map>
#include <cmath>
using namespace std;
const int maxn = 2 * 1e4 + 10;
char c;
int T, n, dis[maxn], par[maxn];
int query(int x) {
if (par[x] == x) {
return x;
}
else {
int temp = query(par[x]);
dis[x] += dis[par[x]];
return par[x] = temp;
}
}
int main()
{
scanf("%d", &T);
while (T--) {
scanf("%d", &n);
for (int i = 0; i <= n; i++) {
dis[i] = 0;
par[i] = i;
}
while (cin >> c && c != 'O') {
if (c == 'I') {
int a, b; scanf("%d %d", &a, &b);
par[a] = b;
dis[a] = abs(a - b) % 1000;
}
else {
int a; scanf("%d", &a);
query(a);
printf("%d\n", dis[a]);
}
}
}
return 0;
}