#include #include int t; int n,m,l; std::vector gf[100010],bf[100010]; long long answer; int main(void) { int i,j,k; int u,v; //freopen("x.in","r",stdin); scanf("%d",&t); while(t--) { scanf("%d %d %d",&n,&m,&l); for(i = 0;i < l;++i) scanf("%d %d",&u,&v),gf[u].push_back(v),bf[v].push_back(u); answer = 0; for(i = 1;i <= n;++i) for(j = 0;j < gf[i].size();++j) answer += 1ll * (gf[i].size() - 1) * (bf[gf[i][j]].size() - 1) * 2; for(i = 1;i <= n;++i) gf[i].resize(0); for(i = 1;i <= m;++i) bf[i].resize(0); printf("%I64d\n",answer); } return 0; }