#include <stdio.h>
#include <stdlib.h>

int visited[310000];
int red[310000];
int f=0,br=0,bs=0,bi=0,bo=0,brojac=0;;
char slovo[310000];

int dfs(int v,int n,int bs,int bi,int bo, int **mat,char *s)
{
    visited[v]=1;
    for (int i=1;i<n;i++)
        if((mat[i][0]==v || mat[i][1]==v) && !visited[mat[i][0]+mat[i][1]-v])
        {
            if (s[i]=='S')bs++;
            if (s[i]=='I')bi++;
            if (s[i]=='O')bo++;
            if (bs==bi && bs==bo && bs!=0)
            {
                br=1+dfs(mat[i][0]+mat[i][1]-v,n,bs,bi,bo,mat,s);
                if (s[i]=='S')bs--;
                if (s[i]=='I')bi--;
                if (s[i]=='O')bo--;
            }
            else
            {
                br=dfs(mat[i][0]+mat[i][1]-v,n,bs,bi,bo,mat,s);
                if (s[i]=='S')bs--;
                if (s[i]=='I')bi--;
                if (s[i]=='O')bo--;
            }
        }
    return br;
}

int main()
{
    int n;
    scanf("%d",&n);
    char c;
    char *s=(char *)malloc((n)*sizeof(char));
    int **mat=(int**)malloc((n)*sizeof(int*));
    for (int i=1;i<n;i++) mat[i]=(int*)malloc(2*sizeof(int*));
    for (int i=1;i<n;i++)
        {
            visited[i]=0;
            mat[i][1]=0;
            mat[i][0]=0;
        }
    for (int i=1;i<n;i++)
    {
        scanf("%d%d%c%c",&mat[i][0],&mat[i][1],&c,&s[i]);
    }
    int suma=0;
    for (int i=1;i<=n;i++)
    {
        for (int j=1;j<=n;j++) visited[j]=0;
        visited[i]=1;br=0;
        suma+=dfs(i,n,0,0,0,mat,s);
    }
    printf("%d",suma/2);
}