#include<stdio.h>
#include<algorithm>
using namespace std;
int segtree[3][1048576];
pair<int,int> dat[100000];
int y[300001];
pair<int,int>note[300001];
pair<int,int>note2[300001];
void set(int a,int b,int c){
b+=524288;
segtree[a][b]=c;
b/=2;
while(b){
segtree[a][b]=max(segtree[a][b*2],segtree[a][b*2+1]);
b/=2;
}
}
int query(int a,int b,int c,int d,int e,int f){
if(c<0||c>524287||d<0||d>524287||c>d)return -1999999999;
if(d<a||b<c)return -1999999999;
if(c<=a&&b<=d)return segtree[f][e];
return max(query(a,(a+b)/2,c,d,e*2,f),query((a+b)/2+1,b,c,d,e*2+1,f));
}
int H,W,N;
int solve(){
for(int i=0;i<3;i++)
for(int j=0;j<1048576;j++)
segtree[i][j]=0;
std::sort(dat,dat+N);
for(int i=0;i<N;i++){
y[i*3]=dat[i].second;
y[i*3+1]=dat[i].second-1;
y[i*3+2]=dat[i].second+1;
note[i*3]=make_pair(dat[i].second,1);
note[i*3+1]=make_pair(dat[i].second-1,0);
note[i*3+2]=make_pair(dat[i].second+1,0);
note2[i*3]=make_pair(dat[i].second,1);
note2[i*3+1]=make_pair(dat[i].second-1,2);
note2[i*3+2]=make_pair(dat[i].second+1,2);
}
std::sort(y,y+N*3);
std::sort(note,note+N*3);
std::sort(note2,note2+N*3);
int SUM=y[0]-1;
for(int i=0;i<N*3;i++){
if(y[i]>=0&&y[i]<W&&(i==0||y[i-1]!=y[i])){
set(0,i,0);
set(1,i,SUM);
}else{
set(1,i,-1999999999);
set(0,i,-1999999999);
}
//if(y[i]>=0&&y[i]<W&&(i==0||y[i-1]!=y[i])&¬e2[i].second==1)set(0,i,0);
//else set(0,i,-1999999999);
SUM+=max(0,y[i+1]-y[i]-(note[i].second));
}
SUM=W-y[N*3-1];
for(int i=N*3-1;i>=0;i--){
// printf("%d ",SUM);
if(y[i]>=0&&y[i]<W&&(i==0||y[i]!=y[i-1]))set(2,i,SUM);
else set(2,i,-1999999999);
if(i)SUM+=max(0,y[i]-y[i-1]-(2-note2[i].second));
}
int ret=0;
int mi=0;
for(int i=0;i<N;i++){
int L=upper_bound(dat,dat+N,make_pair(dat[i].first-1,1999999999))-lower_bound(dat,dat+N,make_pair(dat[i].first-1,0));
int S;
if(L==0){
S=query(0,524287,0,N-1,1,0);
if(S==0)ret=max(ret,S+dat[i].first-2-mi);
}else if(L==1){
int t=dat[lower_bound(dat,dat+N,make_pair(dat[i].first-1,0))-dat].second;
int Y=lower_bound(y,y+N*3,t)-y;
S=max(query(0,524287,0,Y,1,1),query(0,524287,Y,N*3-1,1,2));
if(S>=0)ret=max(ret,S+dat[i].first-1-mi);
}else{
int t2=dat[upper_bound(dat,dat+N,make_pair(dat[i].first-1,1999999999))-dat-1].second;
int t1=dat[lower_bound(dat,dat+N,make_pair(dat[i].first-1,0))-dat].second;
int Y1=lower_bound(y,y+N*3,t1)-y;
int Y2=lower_bound(y,y+N*3,t2)-y;
S=max(max(query(0,524287,0,Y1,1,1),query(0,524287,Y2,N*3-1,1,2)),query(0,524287,Y1,Y2,1,0));
if(S>=0)ret=max(ret,S+dat[i].first-1-mi);
}
int at=lower_bound(y,y+N*3,dat[i].second)-y;
//printf("%d:%d,%d ",dat[i].first,S,dat[i].first-mi-(L?1:2));
set(0,at,-1999999999);
set(1,at,-1999999999);
set(2,at,-1999999999);
if(dat[i].first!=dat[i+1].first)mi++;
}
return ret;
}
int main(){
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
H=a;
W=b;
N=c;
for(int i=0;i<c;i++){
int d,e;
scanf("%d%d",&d,&e);
dat[i]=make_pair(d,e);
y[i]=e;
}
std::sort(dat,dat+c);
std::sort(y,y+c);
int p=a-1;
int q=b-1;
for(int i=1;i<c;i++){
if(dat[i].first!=dat[i-1].first)p--;
if(y[i]!=y[i-1])q--;
}
long long NC=(long long)p*(long long)q;
int val=0;
for(int i=0;i<4;i++){
int V=solve();
// printf("%d\n",V);
val=max(val,V);
for(int j=0;j<c;j++){
dat[j]=make_pair(W-dat[j].second+1,dat[j].first);
}
swap(H,W);
}
// printf("%lld %d\n",NC,val);
printf("%lld\n",NC+val);
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgc2VndHJlZVszXVsxMDQ4NTc2XTsKcGFpcjxpbnQsaW50PiBkYXRbMTAwMDAwXTsKaW50IHlbMzAwMDAxXTsKcGFpcjxpbnQsaW50Pm5vdGVbMzAwMDAxXTsKcGFpcjxpbnQsaW50Pm5vdGUyWzMwMDAwMV07CnZvaWQgc2V0KGludCBhLGludCBiLGludCBjKXsKCWIrPTUyNDI4ODsKCXNlZ3RyZWVbYV1bYl09YzsKCWIvPTI7Cgl3aGlsZShiKXsKCQlzZWd0cmVlW2FdW2JdPW1heChzZWd0cmVlW2FdW2IqMl0sc2VndHJlZVthXVtiKjIrMV0pOwoJCWIvPTI7Cgl9Cn0KaW50IHF1ZXJ5KGludCBhLGludCBiLGludCBjLGludCBkLGludCBlLGludCBmKXsKCWlmKGM8MHx8Yz41MjQyODd8fGQ8MHx8ZD41MjQyODd8fGM+ZClyZXR1cm4gLTE5OTk5OTk5OTk7CglpZihkPGF8fGI8YylyZXR1cm4gLTE5OTk5OTk5OTk7CglpZihjPD1hJiZiPD1kKXJldHVybiBzZWd0cmVlW2ZdW2VdOwoJcmV0dXJuIG1heChxdWVyeShhLChhK2IpLzIsYyxkLGUqMixmKSxxdWVyeSgoYStiKS8yKzEsYixjLGQsZSoyKzEsZikpOwp9CmludCBILFcsTjsKaW50IHNvbHZlKCl7Cglmb3IoaW50IGk9MDtpPDM7aSsrKQoJCWZvcihpbnQgaj0wO2o8MTA0ODU3NjtqKyspCgkJCXNlZ3RyZWVbaV1bal09MDsKCXN0ZDo6c29ydChkYXQsZGF0K04pOwoJZm9yKGludCBpPTA7aTxOO2krKyl7CgkJeVtpKjNdPWRhdFtpXS5zZWNvbmQ7CgkJeVtpKjMrMV09ZGF0W2ldLnNlY29uZC0xOwoJCXlbaSozKzJdPWRhdFtpXS5zZWNvbmQrMTsKCQlub3RlW2kqM109bWFrZV9wYWlyKGRhdFtpXS5zZWNvbmQsMSk7CgkJbm90ZVtpKjMrMV09bWFrZV9wYWlyKGRhdFtpXS5zZWNvbmQtMSwwKTsKCQlub3RlW2kqMysyXT1tYWtlX3BhaXIoZGF0W2ldLnNlY29uZCsxLDApOwoJCW5vdGUyW2kqM109bWFrZV9wYWlyKGRhdFtpXS5zZWNvbmQsMSk7CgkJbm90ZTJbaSozKzFdPW1ha2VfcGFpcihkYXRbaV0uc2Vjb25kLTEsMik7CgkJbm90ZTJbaSozKzJdPW1ha2VfcGFpcihkYXRbaV0uc2Vjb25kKzEsMik7Cgl9CglzdGQ6OnNvcnQoeSx5K04qMyk7CglzdGQ6OnNvcnQobm90ZSxub3RlK04qMyk7CglzdGQ6OnNvcnQobm90ZTIsbm90ZTIrTiozKTsKCWludCBTVU09eVswXS0xOwoJZm9yKGludCBpPTA7aTxOKjM7aSsrKXsKCQlpZih5W2ldPj0wJiZ5W2ldPFcmJihpPT0wfHx5W2ktMV0hPXlbaV0pKXsKCQkJc2V0KDAsaSwwKTsKCQkJc2V0KDEsaSxTVU0pOwoJCX1lbHNlewoJCQlzZXQoMSxpLC0xOTk5OTk5OTk5KTsKCQkJc2V0KDAsaSwtMTk5OTk5OTk5OSk7CgkJfQoJCS8vaWYoeVtpXT49MCYmeVtpXTxXJiYoaT09MHx8eVtpLTFdIT15W2ldKSYmbm90ZTJbaV0uc2Vjb25kPT0xKXNldCgwLGksMCk7CgkJLy9lbHNlIHNldCgwLGksLTE5OTk5OTk5OTkpOwoJCVNVTSs9bWF4KDAseVtpKzFdLXlbaV0tKG5vdGVbaV0uc2Vjb25kKSk7Cgl9CglTVU09Vy15W04qMy0xXTsKCWZvcihpbnQgaT1OKjMtMTtpPj0wO2ktLSl7CgkvLwlwcmludGYoIiVkICIsU1VNKTsKCQlpZih5W2ldPj0wJiZ5W2ldPFcmJihpPT0wfHx5W2ldIT15W2ktMV0pKXNldCgyLGksU1VNKTsKCQllbHNlIHNldCgyLGksLTE5OTk5OTk5OTkpOwoJCWlmKGkpU1VNKz1tYXgoMCx5W2ldLXlbaS0xXS0oMi1ub3RlMltpXS5zZWNvbmQpKTsKCX0KCWludCByZXQ9MDsKCWludCBtaT0wOwoJZm9yKGludCBpPTA7aTxOO2krKyl7CgkJaW50IEw9dXBwZXJfYm91bmQoZGF0LGRhdCtOLG1ha2VfcGFpcihkYXRbaV0uZmlyc3QtMSwxOTk5OTk5OTk5KSktbG93ZXJfYm91bmQoZGF0LGRhdCtOLG1ha2VfcGFpcihkYXRbaV0uZmlyc3QtMSwwKSk7CgkJaW50IFM7CgkJaWYoTD09MCl7CgkJCVM9cXVlcnkoMCw1MjQyODcsMCxOLTEsMSwwKTsKCQkJaWYoUz09MClyZXQ9bWF4KHJldCxTK2RhdFtpXS5maXJzdC0yLW1pKTsKCQl9ZWxzZSBpZihMPT0xKXsKCQkJaW50IHQ9ZGF0W2xvd2VyX2JvdW5kKGRhdCxkYXQrTixtYWtlX3BhaXIoZGF0W2ldLmZpcnN0LTEsMCkpLWRhdF0uc2Vjb25kOwoJCQlpbnQgWT1sb3dlcl9ib3VuZCh5LHkrTiozLHQpLXk7CgkJCVM9bWF4KHF1ZXJ5KDAsNTI0Mjg3LDAsWSwxLDEpLHF1ZXJ5KDAsNTI0Mjg3LFksTiozLTEsMSwyKSk7CgkJCWlmKFM+PTApcmV0PW1heChyZXQsUytkYXRbaV0uZmlyc3QtMS1taSk7CgkJfWVsc2V7CgkJCWludCB0Mj1kYXRbdXBwZXJfYm91bmQoZGF0LGRhdCtOLG1ha2VfcGFpcihkYXRbaV0uZmlyc3QtMSwxOTk5OTk5OTk5KSktZGF0LTFdLnNlY29uZDsKCQkJaW50IHQxPWRhdFtsb3dlcl9ib3VuZChkYXQsZGF0K04sbWFrZV9wYWlyKGRhdFtpXS5maXJzdC0xLDApKS1kYXRdLnNlY29uZDsKCQkJaW50IFkxPWxvd2VyX2JvdW5kKHkseStOKjMsdDEpLXk7CgkJCWludCBZMj1sb3dlcl9ib3VuZCh5LHkrTiozLHQyKS15OwoJCQlTPW1heChtYXgocXVlcnkoMCw1MjQyODcsMCxZMSwxLDEpLHF1ZXJ5KDAsNTI0Mjg3LFkyLE4qMy0xLDEsMikpLHF1ZXJ5KDAsNTI0Mjg3LFkxLFkyLDEsMCkpOwoJCQlpZihTPj0wKXJldD1tYXgocmV0LFMrZGF0W2ldLmZpcnN0LTEtbWkpOwoJCX0KCQlpbnQgYXQ9bG93ZXJfYm91bmQoeSx5K04qMyxkYXRbaV0uc2Vjb25kKS15OwoJCS8vcHJpbnRmKCIlZDolZCwlZCAiLGRhdFtpXS5maXJzdCxTLGRhdFtpXS5maXJzdC1taS0oTD8xOjIpKTsKCQlzZXQoMCxhdCwtMTk5OTk5OTk5OSk7CgkJc2V0KDEsYXQsLTE5OTk5OTk5OTkpOwoJCXNldCgyLGF0LC0xOTk5OTk5OTk5KTsKCQlpZihkYXRbaV0uZmlyc3QhPWRhdFtpKzFdLmZpcnN0KW1pKys7Cgl9CglyZXR1cm4gcmV0Owp9CmludCBtYWluKCl7CglpbnQgYSxiLGM7CglzY2FuZigiJWQlZCVkIiwmYSwmYiwmYyk7CglIPWE7CglXPWI7CglOPWM7Cglmb3IoaW50IGk9MDtpPGM7aSsrKXsKCQlpbnQgZCxlOwoJCXNjYW5mKCIlZCVkIiwmZCwmZSk7CgkJZGF0W2ldPW1ha2VfcGFpcihkLGUpOwoJCXlbaV09ZTsKCX0KCXN0ZDo6c29ydChkYXQsZGF0K2MpOwoJc3RkOjpzb3J0KHkseStjKTsKCWludCBwPWEtMTsKCWludCBxPWItMTsKCWZvcihpbnQgaT0xO2k8YztpKyspewoJCWlmKGRhdFtpXS5maXJzdCE9ZGF0W2ktMV0uZmlyc3QpcC0tOwoJCWlmKHlbaV0hPXlbaS0xXSlxLS07Cgl9Cglsb25nIGxvbmcgTkM9KGxvbmcgbG9uZylwKihsb25nIGxvbmcpcTsKCWludCB2YWw9MDsKCWZvcihpbnQgaT0wO2k8NDtpKyspewoJCWludCBWPXNvbHZlKCk7CgkvLwlwcmludGYoIiVkXG4iLFYpOwoJCXZhbD1tYXgodmFsLFYpOwoJCWZvcihpbnQgaj0wO2o8YztqKyspewoJCQlkYXRbal09bWFrZV9wYWlyKFctZGF0W2pdLnNlY29uZCsxLGRhdFtqXS5maXJzdCk7CgkJfQoJCXN3YXAoSCxXKTsKCX0KLy8JcHJpbnRmKCIlbGxkICVkXG4iLE5DLHZhbCk7CglwcmludGYoIiVsbGRcbiIsTkMrdmFsKTsKfQ==