1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
def solve(n, m, map, moves, moves_number):
    if moves_number != 0:
        for i in range(1, moves_number+1):
            if map[moves[i][0]][moves[i][1]] == 0:
                map[moves[i][0]][moves[i][1]] = 1
                continue
            if map[moves[i][0]][moves[i][1]] == 1:
                map[moves[i][0]][moves[i][1]] = 0
                continue

    moved_cubes = 1
    output = 0
    while moved_cubes > 0:
        moved_cubes = 0
        for i in range(n):
            for j in range(m):
                if map[i][j] == 0:
                    continue
                if i == 0:
                    if map[i+1][j] == 0:
                        map[i][j] = 0
                        moved_cubes += 1
                        continue
                if i == n-1:
                    if map[i-1][j] == 0:
                        map[i][j] = 0
                        moved_cubes += 1
                        continue
                if j == 0:
                    if map[i][j+1] == 0:
                        map[i][j] = 0
                        moved_cubes += 1
                        continue
                if j == m-1:
                    if map[i][j-1] == 0:
                        map[i][j] = 0
                        moved_cubes += 1
                        continue
                if i == 0 or i == n-1 or j == 0 or j == m-1:
                    continue
                if (map[i-1][j] == 0 and map[i+1][j] == 0) or (map[i][j-1] == 0 and map[i][j+1] == 0):
                    map[i][j] = 0
                    moved_cubes += 1
                    continue
        output += moved_cubes
    return output

buf = input()
n = int(buf.split()[0])
m = int(buf.split()[1])
k = int(buf.split()[2])
q = int(buf.split()[3])
cubes = [[0, 0] for i in range(k)]
for i in range(k):
    buf = input()
    cubes[i][0] = int(buf.split()[0]) - 1
    cubes[i][1] = int(buf.split()[1]) - 1
moves = [[0, 0] for i in range(q+1)]
for i in range(1, q+1):
    buf = input()
    moves[i][0] = int(buf.split()[0]) - 1
    moves[i][1] = int(buf.split()[1]) - 1
moves[0][0] = -1
moves[0][1] = -1


for i in range(q+1):
    map = [[0 for j in range(m)] for j in range(n)]
    for j in range(k):
        map[cubes[j][0]][cubes[j][1]] = 1
    print(solve(n, m, map, moves, i))