#include<cstdio>
#include<algorithm>
using namespace std;
typedef long long ll;
const int maxn=1e5+7;
int a[maxn<<2];
void push_down(int now)
{
if(!a[now]) return ;
a[now<<1]=a[now<<1|1]=a[now];
a[now]=0;
}
void update(int now,int l,int r,int ul,int ur,int c)
{
if(ul<=l&&ur>=r)
{
a[now]=c;
return ;
}
int mid=(l+r)>>1;
push_down(now);
if(ul<=mid) update(now<<1,l,mid,ul,ur,c);
if(ur>mid) update(now<<1|1,mid+1,r,ul,ur,c);
}
int get_sum(int now,int l,int r)
{
if(a[now]) return a[now]*(r-l+1);
int mid=(l+r)>>1;
return get_sum(now<<1,l,mid)+get_sum(now<<1|1,mid+1,r);
}
int main()
{
int T,kase=1,n,m,l,r,c;
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&n,&m);
a[1]=1;
for(int i=0;i<m;i++)
{
scanf("%d%d%d",&l,&r,&c);
update(1,1,n,l,r,c);
}
printf("Case %d: The total value of the hook is %d.\n",kase++,get_sum(1,1,n));
}
return 0;
}