#include <bits/stdc++.h>
using namespace std;
struct No {
  int x1, x2;
  int y1, y2;
};
No no[10001];
int quantidade;
short area[10001];
short pilha[100][4];
int topoPilha;
bool procurar(int a, int b, int c, int d) {
  int i;
  if (!d) {
    for (i = 0; i < quantidade; i++) {
      if (c > no[i].x1 && c < no[i].x2 && a == no[i].y1 && b == no[i].y2) {
        no[quantidade].x1 = c;
        no[quantidade].x2 = no[i].x2;
        no[quantidade].y1 = a;
        no[quantidade].y2 = b;
        no[i].x2 = c;
        quantidade++;
        return true;
      }
    }
    pilha[topoPilha][0] = a;
    pilha[topoPilha][1] = b;
    pilha[topoPilha][2] = c;
    pilha[topoPilha][3] = d;
    topoPilha++;
    return false;
  } else {
    for (i = 0; i < quantidade; i++) {
      if (c > no[i].y1 && c < no[i].y2 && a == no[i].x1 && b == no[i].x2) {
        no[quantidade].x1 = a;
        no[quantidade].x2 = b;
        no[quantidade].y1 = c;
        no[quantidade].y2 = no[i].y2;
        no[i].y2 = c;
        quantidade++;
        return true;
      }
    }
    pilha[topoPilha][0] = a;
    pilha[topoPilha][1] = b;
    pilha[topoPilha][2] = c;
    pilha[topoPilha][3] = d;
    topoPilha++;
    return false;
  }
}
bool comp(int a, int b) { return (a < b); };
int main() {
  int x, y, q, a, b, c, d, i, temp;
  topoPilha = 0;
  while (cin >> x >> y >> q) {
    quantidade = 0;
    no[quantidade].x1 = 0;
    no[quantidade].x2 = x;
    no[quantidade].y1 = 0;
    no[quantidade].y2 = y;
    quantidade++;
    while (q--) {
      scanf("%d %d %d %d", &a, &b, &c, &d);
      if (a == c) {
        procurar(b, d, a, 0);
      } else {
        procurar(a, c, b, 1);
      }
    }
    while (topoPilha) {
      for (i = 0; i < topoPilha; i++) {
        if (procurar(pilha[i][0], pilha[i][1], pilha[i][2], pilha[i][3])) {
          topoPilha--;
          pilha[i][0] = pilha[topoPilha][0];
          pilha[i][1] = pilha[topoPilha][1];
          pilha[i][2] = pilha[topoPilha][2];
          pilha[i][3] = pilha[topoPilha][3];
        } else {
          topoPilha--;
        }
      }
    }
    for (i = 0; i < quantidade; i++) {
      area[i] = (no[i].x2 - no[i].x1) * (no[i].y2 - no[i].y1);
    }
    sort(area, area + quantidade, comp);
    for (i = 0; i < quantidade; i++) {
      printf("%d%c", area[i], (i + 1 < quantidade) ? ' ' : '\n');
    }
  }
  return 0;
}
