#include <bits/stdc++.h>
using namespace std;
int t, n, m, k, a[54][54], visited[54][54], b, c, ret;
int dy[] = {-1, 0, 1, 0};
int dx[] = {0, 1, 0, -1};
void dfs(int y, int x){
for(int i = 0; i < 4; i++){
int ny = y + dy[i];
int nx = x + dx[i];
if(ny < 0 || ny >= n || nx < 0 || nx >= m || visited[ny][nx] || !a[ny][nx]) continue;
visited[ny][nx] = 1;
dfs(ny, nx);
}
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
cin >> t;
while(t--){
fill(&a[0][0], &a[0][0] + 54 * 54, 0);
fill(&visited[0][0], &visited[0][0] + 54 * 54, 0);
cin >> m >> n >> k;
for(int i = 0; i < k; i++){
cin >> b >> c;
a[c][b] = 1;
}
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
if(!visited[i][j] && a[i][j]){
visited[i][j] = 1;
dfs(i, j);
ret++;
}
}
}
cout << ret << '\n';
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCB0LCBuLCBtLCBrLCBhWzU0XVs1NF0sIHZpc2l0ZWRbNTRdWzU0XSwgYiwgYywgcmV0OwppbnQgZHlbXSA9IHstMSwgMCwgMSwgMH07CmludCBkeFtdID0gezAsIDEsIDAsIC0xfTsKCnZvaWQgZGZzKGludCB5LCBpbnQgeCl7CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgNDsgaSsrKXsKICAgICAgICBpbnQgbnkgPSB5ICsgZHlbaV07CiAgICAgICAgaW50IG54ID0geCArIGR4W2ldOwogICAgICAgIGlmKG55IDwgMCB8fCBueSA+PSBuIHx8IG54IDwgMCB8fCBueCA+PSBtIHx8IHZpc2l0ZWRbbnldW254XSB8fCAhYVtueV1bbnhdKSBjb250aW51ZTsKICAgICAgICB2aXNpdGVkW255XVtueF0gPSAxOwogICAgICAgIGRmcyhueSwgbngpOwogICAgfQp9CgppbnQgbWFpbigpewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKE5VTEwpOyBjb3V0LnRpZShOVUxMKTsKICAgIGNpbiA+PiB0OwogICAgd2hpbGUodC0tKXsKICAgICAgICBmaWxsKCZhWzBdWzBdLCAmYVswXVswXSArIDU0ICogNTQsIDApOwogICAgICAgIGZpbGwoJnZpc2l0ZWRbMF1bMF0sICZ2aXNpdGVkWzBdWzBdICsgNTQgKiA1NCwgMCk7CiAgICAgICAgY2luID4+IG0gPj4gbiA+PiBrOwogICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBrOyBpKyspewogICAgICAgICAgICBjaW4gPj4gYiA+PiBjOwogICAgICAgICAgICBhW2NdW2JdID0gMTsKICAgICAgICB9CiAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IG47IGkrKyl7CiAgICAgICAgICAgIGZvcihpbnQgaiA9IDA7IGogPCBtOyBqKyspewogICAgICAgICAgICAgICAgaWYoIXZpc2l0ZWRbaV1bal0gJiYgYVtpXVtqXSl7CiAgICAgICAgICAgICAgICAgICAgdmlzaXRlZFtpXVtqXSA9IDE7CiAgICAgICAgICAgICAgICAgICAgZGZzKGksIGopOwogICAgICAgICAgICAgICAgICAgIHJldCsrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNvdXQgPDwgcmV0IDw8ICdcbic7CiAgICB9Cn0=