#include <bits/stdc++.h>
using namespace std;
long long a[105][105][5], b[105][105], w, h;
long long xb, yb, xe, ye, n, ans[10005], s;
void dfs(long long x, long long y) {
  if (b[x][y]) return;
  ans[s]++;
  b[x][y] = 1;
  if (!a[x][y][1] && x > 0) dfs(x - 1, y);
  if (!a[x][y][2] && y + 1 < h) dfs(x, y + 1);
  if (!a[x][y][3] && x + 1 < w) dfs(x + 1, y);
  if (!a[x][y][4] && y > 0) dfs(x, y - 1);
}
int main() {
  scanf("%lld%lld%lld", &w, &h, &n);
  for (int i = 1; i <= n; i++) {
    scanf("%lld%lld", &xb, &yb);
    scanf("%lld%lld", &xe, &ye);
    if (xb > xe) swap(xb, xe);
    if (yb > ye) swap(yb, ye);
    if (xb == xe)
      for (int j = yb; j < ye; j++) {
        a[xb][j][1] = 1;
        a[xb - 1][j][3] = 1;
      }
    if (yb == ye)
      for (int j = xb; j < xe; j++) {
        a[j][yb][4] = 1;
        a[j][yb - 1][2] = 1;
      }
  }
  for (int i = 0; i < w; i++)
    for (int j = 0; j < h; j++)
      if (!b[i][j]) {
        s++;
        dfs(i, j);
      }
  sort(ans + 1, ans + s + 1);
  for (int i = 1; i <= s; i++) printf("%lld ", ans[i]);
  return 0;
}
