#include<iostream>
using namespace std;
int n;
int dfs(int u,int v,int pos[1000],char a[1000][1000]){
    int bi=0,bs=0,bo=0;
    pos[u]=1;
    for(int k=0;k<n;k++){
        if(a[u][k]&&!pos[k]){
            if(a[k][v]=='S')
                bs++;
            else if(a[k][v]=='I')
                bi++;
            else
                bo++;
            if(k==v){
                if(bs==bi&&bs==bo)
                    return 1;
                return 0;
            }
            else
                return dfs(k,v,pos,a);
        }
    }
    return 0;
}
int main(){
    int u,v,r=0,i,j;
    cin>>n;
    int pos[1000];
    char a[1000][1000],p;
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
            a[i][j]=NULL;
    for(i=0;i<n-1;i++)
        cin>>u>>v>>a[u][v];
    int bs[n],bo[n],bi[n];
    for(i=0;i<n;i++)
        for(j=0;j<n;j++){
            p=a[i][j];
            if(a[i][j])
                a[i][j]=NULL;
            for(int l=0;l<n;l++)
                pos[l]=0;
            r+=dfs(i,j,pos,a);
            a[i][j]=p;
        }
    cout<<r;
    return 0;
}