#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 20;
struct edge {
int sum, tag;
}seg[N << 2];
int T, n, m;
void update(int id) {
seg[id].sum = seg[id << 1].sum + seg[id << 1 | 1].sum;
}
void build(int id, int l, int r) {
if (l == r) {
seg[id].sum = 1; seg[id].tag = 0;
return;
}
int mid = (l + r) >> 1;
build(id << 1, l, mid);
build(id << 1 | 1, mid + 1, r);
update(id);
}
void push_down(int id, int l, int r) {
int mid = (l + r) >> 1;
seg[id << 1].sum = (mid - l + 1) * seg[id].tag;
seg[id << 1 | 1].sum = (r - mid) * seg[id].tag;
seg[id << 1].tag = seg[id].tag;
seg[id << 1 | 1].tag = seg[id].tag;
seg[id].tag = 0;
}
void modify(int id, int l, int r, int ql, int qr, int v) {
if (l == ql && r == qr) {
seg[id].tag = v; seg[id].sum = (r - l + 1) * v;
return;
}
if(seg[id].tag) push_down(id, l, r);
int mid = (l + r) >> 1;
if (qr <= mid) modify(id << 1, l, mid, ql, qr, v);
else if (ql > mid) modify(id << 1 | 1, mid + 1, r, ql, qr, v);
else {
modify(id << 1, l, mid, ql, mid, v);
modify(id << 1 | 1, mid + 1, r, mid + 1, qr, v);
}
update(id);
}
int main() {
scanf("%d", &T);
int cnt = 0;
while (T--) {
scanf("%d%d", &n, &m);
build(1, 1, n);
int a, b, c;
for (int i = 1; i <= m; i++) {
scanf("%d%d%d", &a, &b, &c);
modify(1, 1, n, a, b, c);
}
printf("Case %d: The total value of the hook is %d.\n", ++cnt, seg[1].sum);
}
return 0;
}