import java.util.*;
public class Main {
void fire(int x, int y, boolean[][] mp) {
for (int i = 1; i < mp.length; i++) {
mp[i][y] = true;
mp[x][i] = true;
}
mp[Math.max(1, x-1)][Math.min(mp.length-1, y+1)] = true;
mp[Math.max(1, x-1)][Math.max(1, y-1)] = true;
mp[Math.min(mp.length-1, x+1)][Math.max(1, y-1)] = true;
mp[Math.min(mp.length-1, x+1)][Math.min(mp.length-1, y+1)] = true;
}
void stone(int x, int y, boolean[][] mp) {
int x_1 = Math.max(1, x-2);
int y_1 = Math.max(1, y-2);
int x_2 = Math.min(mp.length - 1, x + 2);
int y_2 = Math.min(mp.length - 1, y + 2);
for (int i = x_1; i <= x_2; i++) {
for (int i1 = y_1; i1 <= y_2; i1++) {
mp[i][i1] = true;
}
}
}
public static void main(String[] args) {
Scanner sn = new Scanner(System.in);
Main main = new Main();
int n = sn.nextInt();
int m = sn.nextInt();
int k = sn.nextInt();
boolean[][] mp = new boolean[n + 1][n + 1];
for (int i = 0; i < m; i++) {
int x = sn.nextInt();
int y = sn.nextInt();
main.fire(x, y, mp);
}
for (int i = 0; i < k; i++) {
int x = sn.nextInt();
int y = sn.nextInt();
main.stone(x, y, mp);
}
int cnt = 0;
for (int i = 1; i < mp.length; i++) {
for (int i1 = 1; i1 < mp[i].length; i1++) {
if(!mp[i][i1]) cnt++;
}
}
System.out.println(cnt);
}
}