#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin>>n;
    map<pair<int,int>,char>m;
    vector<int>adj[n+1];
    int cnt=0;
    int q,w;
    for(int i=0;i<n-1;++i)
    {
        int u,v;
        cin>>u>>v;
        char c;
        cin>>c;
        if(c=='S')
        {
            q=u;
            w=v;
        }
        if(c=='S')++cnt;
        m[{u,v}]=c;
        m[{v,u}]=c;
        adj[u].push_back(v);
        adj[v].push_back(u);
    }
    int ans=0;
    if(cnt==1)
    {
        int cnt1i=0,cnt2i=0,cnt1o=0,cnt2o=0;

        for(auto x:adj[q])
        {
            if(m[{x,q}]=='I')cnt1i++;
            if(m[{x,q}]=='O')cnt1o++;
        }
        for(auto x:adj[w])
        {
            if(m[{x,w}]=='I')cnt2i++;
            if(m[{x,w}]=='O')cnt2o++;
        }
        ans=ans+(cnt1i*cnt2o+cnt1o*cnt2i);
        for(auto x:adj[q])
        {
            bool ok1i=false,ok1o=false;
            if(m[{x,q}]=='I')ok1i=true;
            if(m[{x,q}]=='O')ok1o=true;
            for(auto y:adj[x])
            {
                if(m[{x,y}]=='I')
                {
                    if(ok1o)++ans;
                }
                if(m[{x,y}]=='O')
                {
                    if(ok1i)++ans;
                }
            }
        }
        for(auto x:adj[w])
        {
            bool ok1i=false,ok1o=false;
            if(m[{x,w}]=='I')ok1i=true;
            if(m[{x,w}]=='O')ok1o=true;
            for(auto y:adj[x])
            {
                if(m[{x,y}]=='I')
                {
                    if(ok1o)++ans;
                }
                if(m[{x,y}]=='O')
                {
                    if(ok1i)++ans;
                }
            }
        }
        cout<<ans;
        return 0;
    }


    int a[n+1];
    for(int i=1;i<n;++i)
    {
        a[i]=m[{i,i+1}];
    }

    int cnts=0,cnti=0,cnto=0;
    for(int i=1;i<n;++i)
    {
        cnts=0;
        cnti=0;
        cnto=0;
        for(int j=i;j<n;++j)
        {
            if(a[j]=='S')cnts++;
            if(a[j]=='I')cnti++;
            if(a[j]=='O')cnto++;

            if(cnts==cnti&&cnti==cnto)++ans;

        }

    }
    cout<<ans;

    return 0;
}