//za 20 poena O(n^2)
#include<iostream>
#include<vector>
using namespace std;
#define MAXN 300050
#define ll long long
#define pb push_back
#define mp make_pair
vector<pair<int,char>> a[MAXN];
bool hb[MAXN];
ll ans=0;
void dfs(int r,int s,int i,int o)
{
	hb[r]=true;
	for(int j=0;j<a[r].size();j++) if(!hb[a[r][j].first])
	{
		if(a[r][j].second=='S') dfs(a[r][j].first,s+1,i,o);
		else if(a[r][j].second=='I') dfs(a[r][j].first,s,i+1,o);
		else dfs(a[r][j].first,s,i,o+1);
	}
	if(s==i && i==o && o!=0) ans++;
	hb[r]=false;
}
int main()
{
	ios_base::sync_with_stdio(false);cin.tie(0);
	int n;
	cin>>n;
	for(int i=1;i<n;i++)
	{
		int x,y;
		char c;
		cin>>x>>y>>c;
		a[x].pb(mp(y,c));
		a[y].pb(mp(x,c));
	}
	
	for(int i=1;i<=n;i++) dfs(i,0,0,0);
	cout<<ans/2;
	return 0;
}