#include #include #include #include #define rep(i,s,t) for(int i=s;i<=t;i++) #define dwn(i,s,t) for(int i=s;i>=t;i--) using namespace std; inline int read() { int x=0,f=1;char c=getchar(); for(;!isdigit(c);c=getchar()) if(c=='-') f=-1; for(;isdigit(c);c=getchar()) x=x*10+c-'0'; return x*f; } typedef long long ll; const int maxn=100010; int A[maxn],B[maxn]; int u[maxn],v[maxn]; void solve() { int n=read(),m=read(),k=read(); rep(i,1,n) A[i]=0; rep(i,1,m) B[i]=0; rep(i,1,k) { int x=read(),y=read(); u[i]=x;v[i]=y; A[x]++;B[y]++; } ll ans=0; rep(i,1,k) { int x=u[i],y=v[i]; ans+=(ll)(A[x]-1)*(B[y]-1); } printf("%I64d\n",ans*2); } int main() { dwn(T,read(),1) solve(); return 0; }