#include <iostream>
using namespace std;
int main ()
{
    short a[1001][1001];
    int M,N,Q,x=0,flag=0;
    cin>>N>>M;
    for(int i=0;i<M+1;i++)
    {
        for(int j=0;j<N+1;j++)a[i][j]=0;
    }
    unsigned short X1[9001],X2[9001],Y1[9001],Y2[9001];
    cin>>Q;
    for(int i=0;i<Q;i++)
    {
        cin>>X1[i]>>Y1[i]>>X2[i]>>Y2[i];
    }
    for(int i=0;i<Q;i++)
    {
        if(Y1[i]==Y2[i])
        {
            for(int j=X1[i]-1;j<X2[i];j++)a[j][Y1[i]-1]=2;
        }
        else for(int j=Y1[i]-1;j<Y2[i];j++)a[X1[i]-1][j]=2;
    }
    //Here we go...
    for(int o=0;o<1000;o++)
    {
        flag=0;
        for(int i=0;i<M;i++)
        {
            for(int j=0;j<N;j++)
            {
                if(a[i][j]==0)
                {
                    if(j==0 || j==N-1 || i==0 || i==M-1)a[i][j]=1;
                    if(a[i][j+1]==2 || a[i+1][j]==2 || a[i+1][j+1]==2 || a[i+1][j-1]==2 || a[i][j-1]==2 || a[i-1][j-1]==2 || a[i-1][j]==2 || a[i-1][j+1]==2)a[i][j]=1;
                    flag=1;
                }
            }
        }
        for(int i=0;i<M;i++)
        {
            for(int j=0;j<N;j++)
            {
                if(a[i][j]==1)a[i][j]=2;
            }
        }
        x++;
        if(flag==0)break;
    }
    cout<<(x-1)*2<<endl;
    return 0;
}
