#include<stdio.h>
#include<vector>
#include<string.h>
#include<queue>
#include<iostream>
using namespace std;
#define N 2000
__int64 C=(__int64)1<<60;
vector<__int64>pn[N],sn[N];
vector<char>vn[N];
queue<__int64>que;
__int64 dp[N][4][2];
__int64 bj[N];
__int64 n,cnt=1;
void spa(__int64 rt)
{
memset(bj,0,sizeof(bj));
dp[1][3][0]=0;
while(!que.empty()) que.pop();
que.push(rt);
__int64 now,i;
while(!que.empty())
{
now=que.front();que.pop();
bj[now]=0;
for(i=0;i<pn[now].size();i++)
{
if(vn[now][i]=='L')
{
if(dp[pn[now][i]][0][0]>(dp[now][3][0]+sn[now][i])||(dp[pn[now][i]][0][0]==(dp[now][3][0]+sn[now][i])&&dp[pn[now][i]][0][1]<=dp[now][3][1])||(dp[now][3][0]<C&&dp[pn[now][i]][0][1]==0))
{
dp[pn[now][i]][0][0]=(dp[now][3][0]+sn[now][i]);
dp[pn[now][i]][0][1]=dp[now][3][1]+1;
if(!bj[pn[now][i]]) que.push(pn[now][i]);
}
}
if(vn[now][i]=='O')
{
if(dp[pn[now][i]][1][0]>(dp[now][0][0]+sn[now][i])||(dp[pn[now][i]][1][0]==(dp[now][0][0]+sn[now][i])&&dp[pn[now][i]][1][1]<dp[now][0][1])||(dp[now][0][0]<C&&dp[pn[now][i]][1][1]==0))
{
dp[pn[now][i]][1][0]=(dp[now][0][0]+sn[now][i]);
dp[pn[now][i]][1][1]=dp[now][0][1];
if(!bj[pn[now][i]]) que.push(pn[now][i]);
}
}
if(vn[now][i]=='V')
{
if(dp[pn[now][i]][2][0]>(dp[now][1][0]+sn[now][i])||(dp[pn[now][i]][2][0]==(dp[now][1][0]+sn[now][i])&&dp[pn[now][i]][2][1]<dp[now][1][1])||(dp[now][1][0]<C&&dp[pn[now][i]][2][1]==0))
{
dp[pn[now][i]][2][0]=(dp[now][1][0]+sn[now][i]);
dp[pn[now][i]][2][1]=dp[now][1][1];
if(!bj[pn[now][i]]) que.push(pn[now][i]);
}
}
if(vn[now][i]=='E')
{
if(dp[pn[now][i]][3][0]>(dp[now][2][0]+sn[now][i])||(dp[pn[now][i]][3][0]==(dp[now][2][0]+sn[now][i])&&dp[pn[now][i]][3][1]<dp[now][2][1])||(dp[now][2][0]<C&&dp[pn[now][i]][3][1]==0))
{
dp[pn[now][i]][3][0]=(dp[now][2][0]+sn[now][i]);
dp[pn[now][i]][3][1]=dp[now][2][1];
if(!bj[pn[now][i]]) que.push(pn[now][i]);
}
}
}
}
printf("Case %d: ",cnt++);
if(dp[n][3][1]>0)
printf("Cute Sangsang, Binbin will come with a donkey after travelling %I64d meters and finding %I64d LOVE strings at last.\n",dp[n][3][0],dp[n][3][1]);
else
printf("Binbin you disappoint Sangsang again, damn it!\n");
}
int main()
{
__int64 t;
__int64 i,j,m;
__int64 a,b,c;
char d;
scanf("%I64d",&t);
while(t--)
{
scanf("%I64d %I64d",&n,&m);
for(i=0;i<=n;i++)
{ pn[i].clear();sn[i].clear();vn[i].clear();}
for(i=0;i<m;i++)
{
scanf("%I64d %I64d %I64d %c",&a,&b,&c,&d);
pn[a].push_back(b);
sn[a].push_back(c);
vn[a].push_back(d);
pn[b].push_back(a);
sn[b].push_back(c);
vn[b].push_back(d);
}
for(i=0;i<=n;i++)
for(j=0;j<4;j++)
{ dp[i][j][0]=C;dp[i][j][1]=0;}
spa(1);
}
return 0;
}