/*
#include <stdio.h>
int arr[200][200]={}, arr2[200][200]={};
int n, h, sum=0, som=0;
void dfs(int k, int p)
{
printf("d(%d, %d)\n", k, p);
if(k<1
||p<1||k>h||p>n||arr[k][p]==1)
{
return;
}
arr[k][p]=1;
dfs(k+1, p);
dfs(k-1, p);
dfs(k, p+1);
dfs(k, p-1);
}
void dfs2(int k, int p)
{
if(k<1||p<1||k>h||p>n||arr2[k][p]==0)
{
return;
}
arr2[k][p]=0;
dfs(k+1, p);
dfs(k-1, p);
dfs2(k, p+1);
dfs2(k, p-1);
}
int main()
{
int i, j;
scanf("%d %d", &n, &h);
for(i=0;i<h;i++)
{
for(j=0;j<n;j++)
{
scanf("%d", &arr[i][j]);
arr2[i][j]=arr[i][j];
}
}
for(i=0;i<h;i++)
{
for(j=0;j<n;j++)
{
if(arr[i][j]==0)
{
dfs(i, j);
sum++;
printf("------dfs(%d, %d)\n", i, j);
}
else if(arr2[i][j]==1)
{
dfs2(i, j);
som++;
// printf("------dfs2(%d, %d)\n", i, j);
}
}
}
printf("%d %d", sum, som);
return 0;
}
*/
#include<stdio.h>
int arr[300][300]={}, count[100]={};
int som=0, n, m;
void dfs(int k, int p)
{
if(k<0||p<0||k>n||p>=m||arr[k][p]==1)
{
return;
}
count[som]++;
arr[k][p]=1;
dfs(k+1, p);
dfs(k-1, p);
dfs(k, p-1);
dfs(k, p+1);
}
int main()
{
int e, k, a1, b1, c2, d2, i, j, sum=0;
scanf("%d %d %d", &n, &m, &e);
for(i=0;i<e;i++)
{
scanf("%d %d %d %d", &a1, &b1, &c2, &d2);
for(j=b1;j<d2;j++)
{
for(k=a1;k<c2;k++)
{
arr[j][k]=1;
}
}
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(arr[i][j]==0)
{
dfs(i, j);
printf("(%d %d)\n", i, j);
som++;
}
}
}
printf("%d", som);
return 0;
}