#include<bits/stdc++.h>
using namespace std;
struct slog{
    int a,b;
    char c;
}Grane[300009];
vector<slog>Povezani[300009];
int N,x,y,xi,yi,xo,yo,alg;
long long sol;
int main(){
    cin>>N;
    for(int i=1; i<=N-1; i++){
        cin>>Grane[i].a>>Grane[i].b>>Grane[i].c;
        slog sl;
        sl.a=Grane[i].a;
        sl.b=Grane[i].b;
        sl.c=Grane[i].c;
        Povezani[Grane[i].a].push_back(sl);
        swap(sl.a,sl.b);
        Povezani[Grane[i].b].push_back(sl);
        if(sl.c=='S'){alg++;x=Grane[i].a;y=Grane[i].b;}
    }
    if(alg==1){
        for(int i=0; i<Povezani[x].size(); i++){
            if(Povezani[x][i].c=='I')xi++;
            if(Povezani[x][i].c=='O')xo++;
        }
        for(int i=0; i<Povezani[y].size(); i++){
            if(Povezani[x][i].c=='I')yi++;
            if(Povezani[x][i].c=='O')yo++;
        }
        sol=xi*yo+xo*yi;
    }
    cout<<sol<<endl;
    return 0;
}