#include <cstdio>
#include <cstring>
#include <iostream>
#define CS const static
//Reps
#define Rep(x,l,r) for(int x = (l) ; x <= (r) ; x++)
#define Rush(X) int ____X , X ; scanf("%d",&____X) ; for(X = 1 ; X <= ____X ; X++)
#define RepNxt(x,k) for(int k = head[x] ; k ; k = nxt[k])
#define RepDec(x,l,r) for(int x = (l) ; x >= (r) ; x--)
//SegTree
#define LS(x) ((x)<<1)
#define RS(x) (((x)<<1) + 1)
using namespace std ;
CS int MaxN = 10010 , MaxE = MaxN << 1 ;
int opp[MaxE] , nxt[MaxE] ;
int val[MaxN] , head[MaxN] , dep[MaxN] , que[MaxN] , size[MaxN] , cost[MaxN] ,
top[MaxN] , son[MaxN] , fa[MaxN] , chain[MaxN] ;
int n , tot ;
void Ins(int x,int y)
{
opp[++tot] = y ; nxt[tot] = head[x] ; head[x] = tot ;
opp[++tot] = x ; nxt[tot] = head[y] ; head[y] = tot ;
}
void HeavyLight()
{
que[1] = que[0] = 1 ; dep[1] =0 ; fa[1] = 1 ; cost[1] = 0 ;
Rep(i,1,que[0])
{
int x = que[i] ;
RepNxt(x,k) if(opp[k] != fa[x])
{int y = opp[k] ; que[++que[0]] = y ; dep[y] = dep[x] + 1 , fa[y] = x , cost[y] = cost[x] + val[((k+1)>>1)+1] ;}
}
memset(son,0,sizeof(son)) ; memset(size,0,sizeof(size)) ; size[1] = 1 ;
RepDec(i,que[0],2)
{
int x = que[i] , y = fa[x] ; size[x]++ ; size[y] += size[x] ;
if(size[x]>size[son[y]]) son[y] = x ;
}
int cnt = 0 ;
Rep(i,1,n) if(son[fa[i]] != i)
{
chain[i] = ++cnt ; top[i] = i ;
for(int k = son[i] ; k ; k = son[k]) top[k] = k , chain[k] = cnt ;
}
}
int Lca(int x ,int y)
{
while(chain[x] != chain[y])
{
if(dep[top[x]]<dep[top[y]]) swap(x,y) ;
x = fa[top[x]] ;
}
return (dep[x]<dep[y])?(x):(y) ;
}
void QueryDist(int x,int y) {printf("%d\n",cost[x]+cost[y]-(cost[Lca(x,y)]<<1));}
void Kth(int x,int y)
{
int k ; scanf("%d",&k) ;
}
void Solve()
{
scanf("%d",&n);
tot = 0 ; memset(head,0,sizeof(head)) ;
Rep(i,2,n)
{int x , y ; scanf("%d %d %d\n",&x,&y,&val[i]) ; Ins(x,y) ;}
HeavyLight();
char com[10] ; int x , y , k ;
for(scanf("%s",com) ; com[1] != 'O' ; scanf("\n%s",&com))
{
scanf("%d %d",&x,&y) ;
if(com[1]=='I') QueryDist(x,y) ;
else Kth(x,y) ;
}
}
int main()
{
Rush(T) Solve() ;
return 0 ;
}
I2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPGNzdHJpbmc+CiNpbmNsdWRlIDxpb3N0cmVhbT4KCiNkZWZpbmUgQ1MJCQljb25zdCBzdGF0aWMKCi8vUmVwcwojZGVmaW5lIFJlcCh4LGwscikJCWZvcihpbnQgeCA9IChsKSA7IHggPD0gKHIpIDsgeCsrKQojZGVmaW5lIFJ1c2goWCkJCQlpbnQgX19fX1ggLCBYIDsgc2NhbmYoIiVkIiwmX19fX1gpIDsgZm9yKFggPSAxIDsgWCA8PSBfX19fWCA7IFgrKykKI2RlZmluZSBSZXBOeHQoeCxrKQkJZm9yKGludCBrID0gaGVhZFt4XSA7IGsgOyBrID0gbnh0W2tdKQojZGVmaW5lIFJlcERlYyh4LGwscikJCWZvcihpbnQgeCA9IChsKSA7IHggPj0gKHIpIDsgeC0tKQoKLy9TZWdUcmVlCiNkZWZpbmUgTFMoeCkJCQkoKHgpPDwxKQojZGVmaW5lIFJTKHgpCQkJKCgoeCk8PDEpICsgMSkKCnVzaW5nIG5hbWVzcGFjZSBzdGQgOwoKQ1MgaW50IE1heE4gPSAxMDAxMCAsIE1heEUgPSBNYXhOIDw8IDEgOwoKaW50IG9wcFtNYXhFXSAsIG54dFtNYXhFXSA7CgppbnQgdmFsW01heE5dICwgaGVhZFtNYXhOXSAsIGRlcFtNYXhOXSAsIHF1ZVtNYXhOXSAsIHNpemVbTWF4Tl0gLCBjb3N0W01heE5dICwKCXRvcFtNYXhOXSAsIHNvbltNYXhOXSAsIGZhW01heE5dICwgY2hhaW5bTWF4Tl0gOwoKaW50IG4gLCB0b3QgOwoKdm9pZCBJbnMoaW50IHgsaW50IHkpCnsKCW9wcFsrK3RvdF0gPSB5IDsgbnh0W3RvdF0gPSBoZWFkW3hdIDsgaGVhZFt4XSA9IHRvdCA7CglvcHBbKyt0b3RdID0geCA7IG54dFt0b3RdID0gaGVhZFt5XSA7IGhlYWRbeV0gPSB0b3QgOwp9Cgp2b2lkIEhlYXZ5TGlnaHQoKQp7CglxdWVbMV0gPSBxdWVbMF0gPSAxIDsgZGVwWzFdID0wIDsgZmFbMV0gPSAxIDsgY29zdFsxXSA9IDAgOwoJUmVwKGksMSxxdWVbMF0pCgl7CgkJaW50IHggPSBxdWVbaV0gOwoJCVJlcE54dCh4LGspCWlmKG9wcFtrXSAhPSBmYVt4XSkKCQl7aW50IHkgPSBvcHBba10gOyBxdWVbKytxdWVbMF1dID0geSA7IGRlcFt5XSA9IGRlcFt4XSArIDEgLCBmYVt5XSA9IHggLCBjb3N0W3ldID0gY29zdFt4XSArIHZhbFsoKGsrMSk+PjEpKzFdIDt9Cgl9CgoJbWVtc2V0KHNvbiwwLHNpemVvZihzb24pKSA7IG1lbXNldChzaXplLDAsc2l6ZW9mKHNpemUpKSA7IHNpemVbMV0gPSAxIDsKCVJlcERlYyhpLHF1ZVswXSwyKQoJewoJCWludCB4ID0gcXVlW2ldICwgeSA9IGZhW3hdIDsgc2l6ZVt4XSsrIDsgc2l6ZVt5XSArPSBzaXplW3hdIDsKCQlpZihzaXplW3hdPnNpemVbc29uW3ldXSkJc29uW3ldID0geCA7Cgl9CgoKCWludCBjbnQgPSAwIDsKCVJlcChpLDEsbikJaWYoc29uW2ZhW2ldXSAhPSBpKQoJewoJCWNoYWluW2ldID0gKytjbnQgOyB0b3BbaV0gPSBpIDsKCQlmb3IoaW50IGsgPSBzb25baV0gOyBrIDsgayA9IHNvbltrXSkJdG9wW2tdID0gayAsIGNoYWluW2tdID0gY250IDsKCX0KfQoKaW50IExjYShpbnQgeCAsaW50IHkpCnsKCXdoaWxlKGNoYWluW3hdICE9IGNoYWluW3ldKQoJewoJCWlmKGRlcFt0b3BbeF1dPGRlcFt0b3BbeV1dKQlzd2FwKHgseSkgOwoJCXggPSBmYVt0b3BbeF1dIDsKCX0KCXJldHVybiAoZGVwW3hdPGRlcFt5XSk/KHgpOih5KSA7Cn0KCnZvaWQgUXVlcnlEaXN0KGludCB4LGludCB5KQl7cHJpbnRmKCIlZFxuIixjb3N0W3hdK2Nvc3RbeV0tKGNvc3RbTGNhKHgseSldPDwxKSk7fQoKdm9pZCBLdGgoaW50IHgsaW50IHkpCnsKCWludCBrIDsgc2NhbmYoIiVkIiwmaykgOwoJCn0KCnZvaWQgU29sdmUoKQp7CglzY2FuZigiJWQiLCZuKTsKCgl0b3QgPSAwIDsgbWVtc2V0KGhlYWQsMCxzaXplb2YoaGVhZCkpIDsKCVJlcChpLDIsbikKCQl7aW50IHggLCB5IDsgc2NhbmYoIiVkICVkICVkXG4iLCZ4LCZ5LCZ2YWxbaV0pIDsgSW5zKHgseSkgO30KCglIZWF2eUxpZ2h0KCk7CgoJY2hhciBjb21bMTBdIDsgaW50IHggLCB5ICwgayA7Cglmb3Ioc2NhbmYoIiVzIixjb20pIDsgY29tWzFdICE9ICdPJyA7IHNjYW5mKCJcbiVzIiwmY29tKSkKCXsKCQlzY2FuZigiJWQgJWQiLCZ4LCZ5KSA7CgkJaWYoY29tWzFdPT0nSScpCVF1ZXJ5RGlzdCh4LHkpIDsKCQllbHNlCQlLdGgoeCx5KSA7Cgl9Cn0KCmludCBtYWluKCkKewoJUnVzaChUKSBTb2x2ZSgpIDsKCglyZXR1cm4gMCA7Cn0K