/*
题目大意是
给一个n个点m条边的无向图。
每条边有权值和一个字母标号,字母标号有四种 'L' 'O' 'V' 'E'
现在要从1点到n点去
找求找到一条路径,路径按顺序构成了若干个LOVE 注意必须是完整的LOVE
然后要求有LOVE的的条件下路径最短,如果有多条最短路,找LOVE最多的那条
思路就是拆点
将每个点分为四个,代表L,LO,LOV, LOVE四种状态
*/
#include<stdio.h>
#include<string.h>
#include<iostream>
#include<stdlib.h>
#include<queue>
#include<map>
using namespace std;
const long long maxn = 10000;
long long inf = 0xfffffff;
struct nd{
long long v,t,w,next;
}edge[maxn*20];
long long head[maxn],dp[maxn][4][2],vis[maxn][4];
long long ecnt,N,M;
map<int,int>as,bs;
void add(long long u,long long v,long long t,long long w)
{
edge[ecnt].v = v;
edge[ecnt].w = w;
edge[ecnt].t = t;
edge[ecnt].next = head[u];
head[u] = ecnt++;
}
void readin()
{
long long i,u,v,w;
char s[10];
scanf("%I64d %I64d",&N,&M);
memset(head,-1,sizeof(head));
ecnt = 0;
for(i = 0; i < M; ++ i){
scanf("%I64d %I64d %I64d %s",&u,&v,&w,s);
add(u,v,as[(int)s[0]],w);
add(v,u,as[(int)s[0]],w);
}
}
void bfs()
{
long long i,u,v,w,t,k,c;
for(i = 0; i <= N; ++ i)
for(t = 0; t < 4; ++ t)
dp[i][t][0]=inf,dp[i][t][1]=0,vis[i][t]=0;
queue<int>que,sue;
dp[1][3][0] = 0;
que.push(1);
sue.push(3);
while(!que.empty()){
u = que.front(); que.pop();
k = sue.front(); sue.pop();
c = bs[k]; vis[u][k] = 0;
for(i = head[u]; ~i; i = edge[i].next){
v = edge[i].v;
t = edge[i].t;
w = edge[i].w;
if(t^c)continue;
if(dp[u][k][0]+w==dp[v][t][0]){
if(dp[u][k][1]>=dp[v][t][1]){
dp[v][t][1] = dp[u][k][1] + 1;
if(!vis[v][t]){
que.push(v);
sue.push(t);
vis[v][t] = 1;
}
}
}else if(dp[u][k][0] + w < dp[v][t][0]|| dp[v][t][0]==0){
dp[v][t][0] = dp[u][k][0] + w;
dp[v][t][1] = dp[u][k][1] + 1;
if(!vis[v][t]){
que.push(v);
sue.push(t);
vis[v][t] = 1;
}
}
}
}
}
int main()
{
long long T,cas=0;
inf = inf * inf;
as[(int)'L']=0; as[(int)'O']=1; as[(int)'V']=2; as[(int)'E']=3;
bs[0] = 1; bs[1] = 2; bs[2] = 3; bs[3] = 0;
for(scanf("%I64d",&T); T--;){
readin();
bfs();
if(dp[N][3][1]<4||dp[N][3][0]==inf)
printf("Case %I64d: Binbin you disappoint Sangsang again, damn it!\n",++cas);
else
printf("Case %I64d: Cute Sangsang, Binbin will come with a donkey after travelling %I64d meters and finding %I64d LOVE strings at last.\n",++cas,dp[N][3][0],dp[N][3][1]/4);
}
return 0;
}