#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;int T,n,m,k,x[1000005],y[1000005],b[1000005];int dealrow(){ int cnt=0,Trow=0; int mark[1000005]; int ans=0; memset(mark,0,sizeof(mark)); for(int i=0;i<k;i++){ if(mark[x[i]]==1) continue; mark[x[i]]=1; Trow++; cnt=0; b[cnt++]=y[i]; for(int j=i+1;j<k;j++){ if(x[j]==x[i]){ b[cnt++]=y[j]; } } sort(b,b+cnt); for(int j=0;j<cnt-1;j++){ if(b[j+1]-b[j]>2) {ans++;} } if(b[0]>2) {ans++;} if(b[cnt-1]<=n-2&&n>=3){ans++;} } if(n>=2) ans+=(m-Trow); return ans;}int dealcolumn(){ int cnt=0,Tcolumn=0; int mark[1000005]; int ans=0; memset(mark,0,sizeof(mark)); for(int i=0;i<k;i++){ if(mark[y[i]]==1) continue; Tcolumn++; cnt=0; b[cnt++]=x[i]; mark[y[i]]=1; for(int j=i+1;j<k;j++){ if(y[j]==y[i]){ b[cnt++]=x[j]; } } sort(b,b+cnt); for(int j=0;j<cnt-1;j++){ if(b[j+1]-b[j]>2) ans++; } if(b[0]>2) {ans++;} if(b[cnt-1]<=m-2&&m>=3) {ans++;} } if(m>=2) ans+=(n-Tcolumn); return ans;}int main(){ while(~scanf("%d",&T)){ while(T--){ scanf("%d %d %d",&m,&n,&k); for(int i=0;i<k;i++){ scanf("%d %d",&x[i],&y[i]); } int Tans=0; Tans+=dealrow(); Tans+=dealcolumn(); printf("%dn",Tans); } }return 0;}