#include<iostream>
#include<stdio.h>
using namespace std;
struct G{
	int x,y;
	char s;	
};
G drvo[300000];
int N, i, j, k, b=0;
int main(){
	cin>>N;
	for(i=0;i<N-1;i++){
		cin>>drvo[i].x;cin>>drvo[i].y;cin>>drvo[i].s;
	}
	for(i=0;i<N-1;i++)if(drvo[i].s=='S')
					for(j=0;j<N-1;j++)	if(drvo[i].x==drvo[j].x && drvo[j].s=='I')
					 
													for(k=0;k<N-1;k++) if((drvo[j].y==drvo[k].x||drvo[j].y==drvo[k].y) && drvo[k].s=='O')b++;
																else;
							
								else if(drvo[i].x==drvo[j].y && drvo[j].s=='I')
								 
													for(k=0;k<N-1;k++) if((drvo[j].x==drvo[k].x||drvo[j].x==drvo[k].y) && drvo[k].s=='O')b++;
																else;
							
								else if(drvo[i].y==drvo[j].x && drvo[j].s=='I')
								  
													for(k=0;k<N-1;k++) if((drvo[j].y==drvo[k].x||drvo[j].y==drvo[k].y) && drvo[k].s=='O')b++;
																else;
							
								else if(drvo[i].y==drvo[j].y && drvo[j].s=='I')
								 
													for(k=0;k<N-1;k++) if((drvo[j].x==drvo[k].x||drvo[j].x==drvo[k].y) && drvo[k].s=='O')b++;
																else;
													
										
	cout<<b;			
	return 0;
}