#include <bits/stdc++.h>
#define data DATA
#define pii pair<int,int>
#define F first
#define S second
#define pb push_back
#define maxn 3000
using namespace std;
struct data
{
int v;
};
vector<pii> line[maxn];
int n,d[maxn];
void nhap()
{
cin>>n;
int u;
while(cin>>u)
{
int v,w1,w2;
char s;
cin>>v>>w1>>w2>>s;
if (s=='G')
{
line[u].pb({v+n,w1});
line[v+n].pb({u,w2});
}
else if (s=='M')
{
line[u+n].pb({v,w1});
line[v].pb({u+n,w2});
}
}
}
int IJK()/// d[maxn] is all
{
memset(d,30,sizeof d);
d[1]=d[n+1]=0;
priority_queue<pii>q;
q.push({0,1});q.push({0,n+1});
while(!q.empty())
{
//Tim dinh U co d[u] min
int u=q.top().S;
int w=-q.top().F;
q.pop();
if (w>d[u]) continue;
if (u==n||u==n+n) return d[n];
for(auto j:line[u])
{
int v=j.F;
int w=j.S;
if (d[v]>d[u]+w)
{
d[v]=d[u]+w;
q.push({-d[v],v});
}
}
}
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie();
cout.tie();
if (fopen("in.txt","r"))
{
freopen("in.txt","r",stdin);
}
nhap();
cout<<IJK();
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgZGF0YSBEQVRBCiNkZWZpbmUgcGlpIHBhaXI8aW50LGludD4KI2RlZmluZSBGIGZpcnN0CiNkZWZpbmUgUyBzZWNvbmQKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBtYXhuIDMwMDAKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKc3RydWN0IGRhdGEKewogICAgaW50IHY7Cn07CnZlY3RvcjxwaWk+IGxpbmVbbWF4bl07CmludCBuLGRbbWF4bl07Cgp2b2lkIG5oYXAoKQp7CiAgICBjaW4+Pm47CiAgICBpbnQgdTsKICAgIHdoaWxlKGNpbj4+dSkKICAgIHsKICAgICAgICBpbnQgdix3MSx3MjsKICAgICAgICBjaGFyIHM7CiAgICAgICAgY2luPj52Pj53MT4+dzI+PnM7CiAgICAgICAgaWYgKHM9PSdHJykKICAgICAgICB7CiAgICAgICAgICAgIGxpbmVbdV0ucGIoe3Yrbix3MX0pOwogICAgICAgICAgICBsaW5lW3Yrbl0ucGIoe3UsdzJ9KTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAocz09J00nKQogICAgICAgIHsKICAgICAgICAgICAgbGluZVt1K25dLnBiKHt2LHcxfSk7CiAgICAgICAgICAgIGxpbmVbdl0ucGIoe3Urbix3Mn0pOwogICAgICAgIH0KICAgIH0KfQoKaW50IElKSygpLy8vIGRbbWF4bl0gaXMgYWxsCnsKICAgIG1lbXNldChkLDMwLHNpemVvZiBkKTsKICAgIGRbMV09ZFtuKzFdPTA7CiAgICBwcmlvcml0eV9xdWV1ZTxwaWk+cTsKICAgIHEucHVzaCh7MCwxfSk7cS5wdXNoKHswLG4rMX0pOwogICAgd2hpbGUoIXEuZW1wdHkoKSkKICAgIHsKICAgICAgICAvL1RpbSBkaW5oIFUgY28gZFt1XSBtaW4KICAgICAgICBpbnQgdT1xLnRvcCgpLlM7CiAgICAgICAgaW50IHc9LXEudG9wKCkuRjsKICAgICAgICBxLnBvcCgpOwogICAgICAgIGlmICh3PmRbdV0pIGNvbnRpbnVlOwogICAgICAgIGlmICh1PT1ufHx1PT1uK24pIHJldHVybiBkW25dOwoKICAgICAgICBmb3IoYXV0byBqOmxpbmVbdV0pCiAgICAgICAgewogICAgICAgICAgICBpbnQgdj1qLkY7CiAgICAgICAgICAgIGludCB3PWouUzsKICAgICAgICAgICAgaWYgKGRbdl0+ZFt1XSt3KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBkW3ZdPWRbdV0rdzsKICAgICAgICAgICAgICAgIHEucHVzaCh7LWRbdl0sdn0pOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgIH0KfQoKCmludCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgICAgICBjaW4udGllKCk7CiAgICAgICAgY291dC50aWUoKTsKICAgIGlmIChmb3BlbigiaW4udHh0IiwiciIpKQogICAgICAgIHsKICAgICAgICAgICAgZnJlb3BlbigiaW4udHh0IiwiciIsc3RkaW4pOwoKICAgICAgICB9CiAgICBuaGFwKCk7CiAgICBjb3V0PDxJSksoKTsKfQo=