#include using namespace std; using ll=long long; int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); clock_t start=clock(),end=clock(); ll N,M; cin>>N>>M; vector>> G(N); for(int i=0;i>u>>v>>w; u--;v--; G[u].push_back({v,w}); } string S; cin>>S; ll an=1e18; while(double(end-start)/CLOCKS_PER_SEC<1.5){ string T=S; for(int i=0;i> D(N,vector(4,1e18)); D[0][0]=0; priority_queue,vector>,greater>> Q; Q.push({0,0,0}); string TT="KUPC"; vector> seen(N,vector(4,0)); while(!Q.empty()){ auto [c,n,d]=Q.top(); Q.pop(); if(seen[n][d])continue; seen[n][d]=1; if(d==3&&T[n]=='C'){ an=min(an,c); continue; } if(T[n]==TT[d])d++; for(auto [v,w]:G[n]){ ll nc=w+c; if(D[v][d]<=nc)continue; D[v][d]=nc; Q.push({nc,v,d}); } } end=clock(); } if(an<1e17)cout<