#include <bits/stdc++.h>

using namespace std;

struct Grana
{
    char c;
    int u, v;

    Grana()
    {
        this->c = ' ';
        this->u = 0;
        this->v = 0;
    }

    Grana(int u, int v, char c)
    {
        this->u = u;
        this->v = v;
        this->c = c;
    }
};

int ans = 0;
char c[] = {'S', 'I', 'O'};
void br_kombinacija(Grana grane[], int s, Grana *poslednji, int char_index)
{
    if(char_index == 3)
    {
        ans++;
        return;
    }
    else
    {
        for(int i=0; i < s; i++)
        {
            if (grane[i].c == c[char_index])
            {
                if(poslednji)
                {
                    if(poslednji->u == grane[i].u || poslednji->u == grane[i].v || poslednji->v == grane[i].u || poslednji->v == grane[i].v)
                        br_kombinacija(grane, s, poslednji, char_index+1);
                }
                else{
                    br_kombinacija(grane, s, poslednji, char_index+1);
                }
            }
        }
    }
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int n;
    cin >> n;
    Grana grane[n-1];

    for(int i=0; i < n-1; i++)
    {
        cin >> grane[i].u >> grane[i].v >> grane[i].c;
    }

    br_kombinacija(grane, n-1, NULL, 0);
    cout << ans;

    return 0;
}