#include <bits/stdc++.h>
#define MAXN 300005

using namespace std;

string rec="SIO";
bool pos[MAXN];

int bfs(int tren,int n,bool pos[],int pokreci,vector<pair<int,int>>& a,vector<char>& b)
{
    if(pos[tren])return 0;
    pos[tren]=true;
    if(pokreci>=3)return 1;
    int res=0;
    for(int i=0;i<n-1;i++)
    {
        if(rec[pokreci]==b[i])
        {
            if(a[i].first==tren+1)
            {
                res+=bfs(a[i].second-1,n,pos,pokreci+1,a,b);
            }
            if(a[i].second==tren+1)
            {
                res+=bfs(a[i].first-1,n,pos,pokreci+1,a,b);
            }
        }
    }
    return res;
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n;
    cin>>n;
    vector<pair<int,int>> a(MAXN);
    vector<char> b(MAXN);
    for(int i=0;i<n-1;i++)
    {
        cin>>a[i].first>>a[i].second>>b[i];
    }
    for(int i=0;i<n;i++)
        pos[i]=false;
    int br=0;
    for(int i=0;i<n;i++)
    {
        br+=bfs(i,n,pos,0,a,b);
        for(int i=0;i<n;i++)
            pos[i]=false;
    }
    cout<<br;
    return 0;
}