#include <bits/stdc++.h>   using namespace std;   bool vis[205][205];   int cnt;   vector<int> ans;   void dfs(int x, int y) {     if (x % 2 == 0 && y % 2 == 0) cnt++;     vis[x][y] = 1;     if (!vis[x + 1][y]) dfs(x + 1, y);     if (!vis[x][y + 1]) dfs(x, y + 1);     if (!vis[x - 1][y] && (x - 1 >= 0)) dfs(x - 1, y);     if (!vis[x][y - 1] && (y - 1 >= 0)) dfs(x, y - 1);   }   int main() {     ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);     int w, h, n;     cin >> w >> h >> n;     for (int i = 0; i <= w * 2; i++) {       vis[i][h * 2 - 1] = 1;     }     for (int i = 0; i <= h * 2; i++) {       vis[w * 2 - 1][i] = 1;     }     for (int i = 0; i < n; i++) {       int x0, y0, x1, y1;       cin >> x0 >> y0 >> x1 >> y1;       if (x0 == x1) {         x0 *= 2;         x0--;         for (int j = max(y0 * 2 - 1, 0); j <= y1 * 2 - 1; j++) {           vis[x0][j] = 1;         }       } else if (y0 == y1) {         y0 *= 2;         y0--;         for (int j = max(x0 * 2 - 1, 0); j <= x1 * 2 - 1; j++) {           vis[j][y0] = 1;         }       }     }     for (int i = 0; i <= w * 2 - 1; i++) {       for (int j = 0; j <= h * 2 - 1; j++) {         if (!vis[i][j]) {           dfs(i, j);           ans.push_back(cnt);           cnt = 0;         }       }     }     sort(ans.begin(), ans.end());     for (auto i : ans) cout << i <<    ;     return 0;   }   