#include <bits/stdc++.h>
using namespace std;
//fastio
#define fastio ios::sync_with_stdio(false); cin.tie(nullptr);
//iosystem,debug
#ifndef ONLINE_JUDGE
#define debug(x) cerr << #x << " = " << x << endl;
#define iosystem freopen("in.txt", "r", stdin); freopen("out.txt", "w", stdout);
#else
#define debug(x)
#define iosystem
#endif
// #define end "\n"
const char nl = '\n';
const char* yes="YES\n";
const char* no="NO\n";
int main() {
fastio;
//iosystem;
int T=1;
cin >> T;//needed? <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
while (T--) {
int w,h,n;
cin>>w>>h>>n;
vector<vector<int>>grid(h+1,vector<int>(w+1,0));
//input and ((( partial ))) sum >>>is written right????review it
int x1,y1,x2,y2;
for (int i = 0 ; i < n; i++) {
cin>>x1>>y1>>x2>>y2;
if(x1>x2) swap(x1,x2);
if(y1>y2) swap(y1,y2);
x1--,y1--,x2--,y2--;//0-indexed
grid[y1][x1]++;
grid[y1][x2+1]--;
grid[y2+1][x1]--;
grid[y2+1][x2+1]++;
}
//prefix sum part
for (int i = 0 ; i < h ; i++) {
for ( int j = 1 ; j < w ; j++) {
grid[i][j]+=grid[i][j-1];
}
}
for (int i = 1 ; i < h ; i++) {
for ( int j = 0 ; j < w ; j++) {
grid[i][j]+=grid[i-1][j];
}
}
//counting
int cnt=0;
for(int i = 0 ; i< h; i++){
for(int j = 0 ; j < w ;j++){
if(!grid[i][j]) cnt++;
}
}
//answer
cout<<cnt<<nl;
//wrong
// int res=0;
// for (int i = 0 ;i < h; i++) {
// for (int j = 0 ; j < w ; j ++) {
// if (grid[h-1][w-1]) res++;
// }
// }
// cout<<res<<nl;
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Ci8vZmFzdGlvCiNkZWZpbmUgZmFzdGlvIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgY2luLnRpZShudWxscHRyKTsKLy9pb3N5c3RlbSxkZWJ1ZwojaWZuZGVmIE9OTElORV9KVURHRSAKI2RlZmluZSBkZWJ1Zyh4KSBjZXJyIDw8ICN4IDw8ICIgPSAiIDw8IHggPDwgZW5kbDsKI2RlZmluZSBpb3N5c3RlbSBmcmVvcGVuKCJpbi50eHQiLCAiciIsIHN0ZGluKTsgZnJlb3Blbigib3V0LnR4dCIsICJ3Iiwgc3Rkb3V0KTsKI2Vsc2UKI2RlZmluZSBkZWJ1Zyh4KQojZGVmaW5lIGlvc3lzdGVtCiNlbmRpZgoKLy8gI2RlZmluZSBlbmQgIlxuIgpjb25zdCBjaGFyIG5sID0gJ1xuJzsKY29uc3QgY2hhciogeWVzPSJZRVNcbiI7CmNvbnN0IGNoYXIqIG5vPSJOT1xuIjsKCmludCBtYWluKCkgewogICAgZmFzdGlvOwogICAgLy9pb3N5c3RlbTsKICAgIGludCBUPTE7CiAgICBjaW4gPj4gVDsvL25lZWRlZD8gICAgICAgPDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8CiAgICAKICAgIHdoaWxlIChULS0pIHsKICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgICAgICBpbnQgdyxoLG47CiAgICAgICAgY2luPj53Pj5oPj5uOwogICAgICAgIHZlY3Rvcjx2ZWN0b3I8aW50Pj5ncmlkKGgrMSx2ZWN0b3I8aW50Pih3KzEsMCkpOwogICAgICAgIAogICAgICAgIC8vaW5wdXQgYW5kICgoKCAgIHBhcnRpYWwgICAgKSkpIHN1bSAgPj4+aXMgd3JpdHRlbiByaWdodD8/Pz9yZXZpZXcgaXQKICAgICAgICBpbnQgeDEseTEseDIseTI7CiAgICAgICAgZm9yIChpbnQgaSA9IDAgOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgIGNpbj4+eDE+PnkxPj54Mj4+eTI7CgogICAgICAgICAgICBpZih4MT54Mikgc3dhcCh4MSx4Mik7CiAgICAgICAgICAgIGlmKHkxPnkyKSBzd2FwKHkxLHkyKTsKCiAgICAgICAgICAgIHgxLS0seTEtLSx4Mi0tLHkyLS07Ly8wLWluZGV4ZWQKICAgICAgICAgICAgZ3JpZFt5MV1beDFdKys7CgogICAgICAgICAgICBncmlkW3kxXVt4MisxXS0tOwogICAgICAgICAgICBncmlkW3kyKzFdW3gxXS0tOwogICAgICAgICAgICAKICAgICAgICAgICAgZ3JpZFt5MisxXVt4MisxXSsrOwoKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy9wcmVmaXggc3VtIHBhcnQKICAgICAgICBmb3IgKGludCBpID0gMCA7IGkgPCBoIDsgaSsrKSB7CiAgICAgICAgICAgIGZvciAoIGludCBqID0gMSA7IGogPCB3IDsgaisrKSB7CiAgICAgICAgICAgICAgICBncmlkW2ldW2pdKz1ncmlkW2ldW2otMV07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZm9yIChpbnQgaSA9IDEgOyBpIDwgaCA7IGkrKykgewogICAgICAgICAgICBmb3IgKCBpbnQgaiA9IDAgOyBqIDwgdyA7IGorKykgewogICAgICAgICAgICAgICAgZ3JpZFtpXVtqXSs9Z3JpZFtpLTFdW2pdOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vY291bnRpbmcKICAgICAgICBpbnQgY250PTA7CiAgICAgICAgZm9yKGludCBpID0gMCA7IGk8IGg7IGkrKyl7CiAgICAgICAgICAgIGZvcihpbnQgaiA9IDAgOyBqIDwgdyA7aisrKXsKICAgICAgICAgICAgICAgIGlmKCFncmlkW2ldW2pdKSBjbnQrKzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy9hbnN3ZXIKICAgICAgICBjb3V0PDxjbnQ8PG5sOwoKCiAgICAgICAgLy93cm9uZwogICAgICAgIC8vIGludCByZXM9MDsKICAgICAgICAvLyBmb3IgKGludCBpID0gMCA7aSA8IGg7IGkrKykgewogICAgICAgIC8vICAgICBmb3IgKGludCBqID0gMCA7IGogPCB3IDsgaiArKykgewogICAgICAgIC8vICAgICAgICAgaWYgKGdyaWRbaC0xXVt3LTFdKSByZXMrKzsKICAgICAgICAvLyAgICAgfQogICAgICAgIC8vIH0KICAgICAgICAvLyBjb3V0PDxyZXM8PG5sOwogICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgfQogICAgCiAgICAgICAgCiAgICAgICAgCn0KCgoKCgoKCgoKCgoKCgoKCgoKCg==