#include<stdio.h>
#include<map>
using namespace std;
map<pair<int, int>, int>M;
int dx[4] = { 1,-1,0,0 };
int dy[4] = { 0,0,1,-1 };
int E[121][121][4];
int name[121][121], par[121212], C[121212];
bool is_gone[121212];
int find(int x) {
if (x == par[x])return x;
return par[x] = find(par[x]);
}
void union_(int a, int b) {
int pa = find(a);
int pb = find(b);
if (pa == pb)return;
par[pa] = pb;
C[pb] += C[pa];
}
int main() {
int n, k, r, i, j;
for (i = 0; i < 4; i++) M[{dx[i], dy[i]}] = i;
scanf("%d%d%d", &n, &k, &r);
for (i = 0; i < r; i++) {
int x1, y1, x2, y2;
scanf("%d%d%d%d", &x1, &y1, &x2, &y2);
int dx = x1 - x2;
int dy = y1 - y2;
E[x1][y1][M[{-dx, -dy}]] = 1;
E[x2][y2][M[{dx, dy}]] = 1;
}
int cnt = 0;
for (i = 1; i <= n; i++)for (j = 1; j <= n; j++)name[i][j] = ++cnt, par[cnt] = cnt;
for (i = 0; i < k; i++) {
int x, y;
scanf("%d%d", &x, &y);
C[name[x][y]]++;
}
int ans = k*(k - 1) / 2;
for (i = 1; i <= n; i++)for (j = 1; j <= n; j++)for (k = 0; k < 4; k++) {
if (E[i][j][k])continue;
int nextx = i + dx[k];
int nexty = j + dy[k];
if (nextx <= 0 || nextx > n || nexty <= 0 || nexty>n)continue;
union_(name[i][j], name[nextx][nexty]);
}
for (i = 1; i <= n*n; i++) {
int pa = find(i);
if (is_gone[pa])continue;
is_gone[pa] = 1;
ans -= C[pa] * (C[pa] - 1) / 2;
}
printf("%d", ans);
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8bWFwPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwptYXA8cGFpcjxpbnQsIGludD4sIGludD5NOwppbnQgZHhbNF0gPSB7IDEsLTEsMCwwIH07CmludCBkeVs0XSA9IHsgMCwwLDEsLTEgfTsKaW50IEVbMTIxXVsxMjFdWzRdOwppbnQgbmFtZVsxMjFdWzEyMV0sIHBhclsxMjEyMTJdLCBDWzEyMTIxMl07CmJvb2wgaXNfZ29uZVsxMjEyMTJdOwppbnQgZmluZChpbnQgeCkgewoJaWYgKHggPT0gcGFyW3hdKXJldHVybiB4OwoJcmV0dXJuIHBhclt4XSA9IGZpbmQocGFyW3hdKTsKfQp2b2lkIHVuaW9uXyhpbnQgYSwgaW50IGIpIHsKCWludCBwYSA9IGZpbmQoYSk7CglpbnQgcGIgPSBmaW5kKGIpOwoJaWYgKHBhID09IHBiKXJldHVybjsKCXBhcltwYV0gPSBwYjsKCUNbcGJdICs9IENbcGFdOwp9CmludCBtYWluKCkgewoJaW50IG4sIGssIHIsIGksIGo7Cglmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKSBNW3tkeFtpXSwgZHlbaV19XSA9IGk7CglzY2FuZigiJWQlZCVkIiwgJm4sICZrLCAmcik7Cglmb3IgKGkgPSAwOyBpIDwgcjsgaSsrKSB7CgkJaW50IHgxLCB5MSwgeDIsIHkyOwoJCXNjYW5mKCIlZCVkJWQlZCIsICZ4MSwgJnkxLCAmeDIsICZ5Mik7CgkJaW50IGR4ID0geDEgLSB4MjsKCQlpbnQgZHkgPSB5MSAtIHkyOwoJCUVbeDFdW3kxXVtNW3stZHgsIC1keX1dXSA9IDE7CgkJRVt4Ml1beTJdW01be2R4LCBkeX1dXSA9IDE7Cgl9CglpbnQgY250ID0gMDsKCWZvciAoaSA9IDE7IGkgPD0gbjsgaSsrKWZvciAoaiA9IDE7IGogPD0gbjsgaisrKW5hbWVbaV1bal0gPSArK2NudCwgcGFyW2NudF0gPSBjbnQ7Cglmb3IgKGkgPSAwOyBpIDwgazsgaSsrKSB7CgkJaW50IHgsIHk7CgkJc2NhbmYoIiVkJWQiLCAmeCwgJnkpOwoJCUNbbmFtZVt4XVt5XV0rKzsKCX0KCWludCBhbnMgPSBrKihrIC0gMSkgLyAyOwoJZm9yIChpID0gMTsgaSA8PSBuOyBpKyspZm9yIChqID0gMTsgaiA8PSBuOyBqKyspZm9yIChrID0gMDsgayA8IDQ7IGsrKykgewoJCWlmIChFW2ldW2pdW2tdKWNvbnRpbnVlOwoJCWludCBuZXh0eCA9IGkgKyBkeFtrXTsKCQlpbnQgbmV4dHkgPSBqICsgZHlba107CgkJaWYgKG5leHR4IDw9IDAgfHwgbmV4dHggPiBuIHx8IG5leHR5IDw9IDAgfHwgbmV4dHk+biljb250aW51ZTsKCQl1bmlvbl8obmFtZVtpXVtqXSwgbmFtZVtuZXh0eF1bbmV4dHldKTsKCX0KCWZvciAoaSA9IDE7IGkgPD0gbipuOyBpKyspIHsKCQlpbnQgcGEgPSBmaW5kKGkpOwoJCWlmIChpc19nb25lW3BhXSljb250aW51ZTsKCQlpc19nb25lW3BhXSA9IDE7CgkJYW5zIC09IENbcGFdICogKENbcGFdIC0gMSkgLyAyOwoJfQoJcHJpbnRmKCIlZCIsIGFucyk7CglyZXR1cm4gMDsKfQ==