진짜 전형적인 BFS 문제!!
import sys
from collections import deque
readl = sys.stdin.readline
def BFS(i, j):
    q = deque([(i, j)])
    board[i][j] = 1
    cnt = 1
    while q:
        x, y = q.popleft()
        for dx, dy in ((-1, 0), (1, 0), (0, -1), (0, 1)):
            nx, ny, ncnt = x + dx, y + dy, cnt + 1
            if not 0 <= nx < M:
                continue
            if not 0 <= ny < N:
                continue
            if board[nx][ny] == 1:
                continue
            board[nx][ny] = 1
            q.append((nx, ny))
            cnt += 1
    return cnt
M, N, K = map(int, readl().split())
board = [[0] * N for _ in range(M)]
for _ in range(K):
    sc, sr, ec, er = map(int, readl().split())
    for i in range(sr, er):
        for j in range(sc, ec):
            board[i][j] = 1
# for i in range(M):
#     print(board[i])
cnt = []
            
for i in range(M):
    for j in range(N):
        if board[i][j] == 0:
            cnt.append(BFS(i, j))
print(len(cnt))
print(*sorted(cnt))