///Usor (bine mediu..)
#include
#include
using namespace std;
ifstream cin("dreptunghi1.in");
ofstream cout("dreptunghi1.out");
const int mxN = 1e4;
pair p[mxN+2];
int st[mxN+1],l[mxN+1],r[mxN+1],v[mxN+1];
int skyline(int v[], int n)
{
int top = 0, sol = 0;
for(int i = 1;i<=n;i++)
l[i] = r[i] = 0;
for(int i = 1;i<=n;i++)
{
while(top > 0 && v[st[top]] > v[i])
r[st[top]] = i , top--;
st[++top] = i;
}
while(top>0) r[st[top]] = n+1, top--;
for(int i = n;i>0;i--)
{
while(top > 0 && v[st[top]] > v[i])
l[st[top]] = i, top--;
st[++top] = i;
}
for(int i = 1;i<=n;i++)
{
int res = v[i] * (r[i] - l[i] - 1);
sol = max(sol,res);
}
return sol;
}
int main()
{
int n , m , z;
cin>>n>>m>>z;
for(int i = 1;i<=z;i++)
cin>>p[i].first>>p[i].second;
sort(p+1,p+1+z);
p[z+1].first = p[z+1].second = 1e9;
int k = 1, sol = 0;
for(int i = 1;i<=n;i++)
{
for(int j = 1;j<=m;j++)
{
if(i >= p[k].first)
{
while(i>p[k].first) k++;
while(j > p[k].second && p[k].first <= i) k++;
}
if(i==p[k].first&&j==p[k].second) v[j] = 0;
else v[j]++;
}
sol = max(sol,skyline(v,m));
}
cout<