using System;

namespace SIOstablo
{
    class Program
    {
        static void Main()
        {
            int N = int.Parse(Console.ReadLine());
            string[,] grane = new string[N+1, N+1];
            int brojS = 0;
            int brojI = 0;
            int brojO = 0;
            int izlaz = 0;
            for (int i = 0; i < N-1; i++)
            {
                string[] ulazi = Console.ReadLine().Split();
                int x = int.Parse(ulazi[0]);
                int y = int.Parse(ulazi[1]);
                grane[x, y] = ulazi[2];
                grane[y, x] = ulazi[2];
                if (ulazi[2] == "S") brojS++;
                else if (ulazi[2] == "I") brojI++;
                else brojO++;
            }
            if (brojS==1)
            {
                int x = 0;
                int y = 0;
                bool nadjenoS = false;
                for (int i = 0; i < N+1; i++)
                {
                    for (int j = 0; j < N+1; j++)
                    {
                        if (grane[i, j] == "S")
                        {
                            x = i;
                            y = j;
                            nadjenoS = true;
                            break;
                        }
                    }
                    if (nadjenoS == true) break;
                }
                for (int i = 1; i < N+1; i++)
                {
                    if ((grane[x,i]=="I") || (grane[y,i]=="I"))
                    {
                        Console.WriteLine("Nadjeno I");
                        for (int j = 1; j < N+1; j++)
                        {
                            if (grane[i, j] == "O")
                            {
                                Console.WriteLine("Nadjeno O");
                                izlaz++;
                            }
                        }
                    }
                    if ((grane[x, i] == "O") || (grane[y, i] == "O"))
                    {
                        Console.WriteLine("Nadjeno O");
                        for (int j = 1; j < N+1; j++)
                        {
                            if (grane[i, j] == "I")
                            {
                                Console.WriteLine("Nadjeno I");
                                izlaz++;
                            }
                        }
                    }
                }
                Console.WriteLine(izlaz);
            }
            else if (brojS>1)
            {
                int S = 0;
                int I = 0;
                int O = 0;
                for (int i = 1; i < N; i++)
                {
                    for (int j = 2; j < N+1; j++)
                    {
                        if (grane[i, j] == "S") S++;
                        else if (grane[i, j] == "I") I++;
                        else O++;
                    }
                    if (S == I && I == O) izlaz++;
                }
                Console.WriteLine(izlaz);
            }
            else
            {
                Console.WriteLine(izlaz);
            }
        }
    }
}