#include <iostream>
#include <vector>
#include <string>
#include <map>
using namespace std;
typedef long long ll;
typedef struct _segtree{
struct _segtree * left;
struct _segtree * right;
ll sum;
}segtree;
segtree * insert(segtree * t, int l, int r, int x){
if (l == r){
segtree * v = new segtree(*t);
v->left = nullptr;
v->right = nullptr;
v->sum = t->sum + 1;
return v;
}
segtree * v = new segtree(*t);
int mid = (l+r)>>1;
if (x <= mid){
v->left = insert(v->left, l, mid, x);
}else{
v->right = insert(v->right, mid+1, r, x);
}
v->sum = v->left->sum + v->right->sum;
return v;
}
segtree * build(int l, int r){
if (l == r){
segtree * v = new segtree();
v->left = nullptr;
v->right = nullptr;
v->sum = 0;
return v;
}
segtree * v = new segtree();
int mid = (l+r)>>1;
v->left = build(l, mid);
v->right = build( mid+1, r);
v->sum = 0;
return v;
}
ll lessthan(segtree * t, int l, int r, int ll){
if ( r <= ll)
return t->sum;
if(l == r)
return 0;
int mid = (l+r)>>1;
long long ans = 0;
if (mid < ll){
ans += lessthan(t->left, l, mid, ll);
ans += lessthan(t->right, mid+1, r, ll);
}else{
ans += lessthan(t->left, l, mid, ll);
}
return ans;
}
ll greatequalthan(segtree * t, int l, int r, int rr){
if ( rr <= l)
return t->sum;
if(l == r)
return 0;
int mid = (l+r)>>1;
long long ans = 0;
if (mid >= rr){
ans += greatequalthan(t->left, l, mid, rr);
ans += greatequalthan(t->right, mid+1, r, rr);
}else{
ans += greatequalthan(t->right, mid+1, r, rr);
}
return ans;
}
typedef pair<int,int> pii;
#define MAXN 200010
segtree * e[MAXN];
vector<pii> a;
#define x first
#define y second
int main()
{
#ifndef ONLINE_JUDGE
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
#endif
int h, w, m;
cin >> h >> w >> m;
int hm = w+1;
int vm = h+1;
for(int i = 0; i < m; ++ i){
int _x, _y; cin>>_x>>_y;
a.push_back(make_pair(_x,_y));
if(_x == 1){
hm = min(hm, _y);
}
if(_y == 1){
vm = min(vm, _x);
}
}
segtree * beg = build(1, h+2);
vector<int> r(w+1);
vector<int> dow(h+1);
for(int i = 1; i <= w; ++ i)
r[i] = h+1;
for(int i = 1; i <= h; ++ i)
dow[i] = w+1;
for(int i = 0; i < m; ++ i){
r[a[i].y] = min(r[a[i].y] , a[i].x);
dow[a[i].x] = min(dow[a[i].x], a[i].y);
}
for(int i = 1; i <= w; ++ i){
e[i] = insert(beg, 1, h+2, r[i]);
beg = e[i];
}
e[w+1] = e[w];
ll subs = 0;
ll ret = 0;
for(int i = 1; i < vm; ++i){
ll uu = greatequalthan(e[min(dow[i]-1, hm-1)],1,h+2,i);
subs += uu;
ret += dow[i]-1;
}
for(int i = 1; i < hm; ++i)
ret += r[i]-1;
cout << ret - subs <<endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8bWFwPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKdHlwZWRlZiBzdHJ1Y3QgX3NlZ3RyZWV7CiAgICBzdHJ1Y3QgX3NlZ3RyZWUgKiBsZWZ0OwogICAgc3RydWN0IF9zZWd0cmVlICogcmlnaHQ7CiAgICBsbCBzdW07Cn1zZWd0cmVlOwoKc2VndHJlZSAqIGluc2VydChzZWd0cmVlICogdCwgaW50IGwsIGludCByLCBpbnQgeCl7CiAgICBpZiAobCA9PSByKXsKICAgICAgICBzZWd0cmVlICogdiA9IG5ldyBzZWd0cmVlKCp0KTsKICAgICAgICB2LT5sZWZ0ID0gbnVsbHB0cjsKICAgICAgICB2LT5yaWdodCA9IG51bGxwdHI7CiAgICAgICAgdi0+c3VtID0gdC0+c3VtICsgMTsKICAgICAgICByZXR1cm4gdjsKICAgIH0KICAgIHNlZ3RyZWUgKiB2ID0gbmV3IHNlZ3RyZWUoKnQpOwogICAgaW50IG1pZCA9IChsK3IpPj4xOwogICAgaWYgKHggPD0gbWlkKXsKICAgICAgICB2LT5sZWZ0ID0gaW5zZXJ0KHYtPmxlZnQsIGwsIG1pZCwgeCk7CiAgICB9ZWxzZXsKICAgICAgICB2LT5yaWdodCA9IGluc2VydCh2LT5yaWdodCwgbWlkKzEsIHIsIHgpOwogICAgfQogICAgdi0+c3VtID0gdi0+bGVmdC0+c3VtICsgdi0+cmlnaHQtPnN1bTsKICAgIHJldHVybiB2Owp9CnNlZ3RyZWUgKiBidWlsZChpbnQgbCwgaW50IHIpewogICAgaWYgKGwgPT0gcil7CiAgICAgICAgc2VndHJlZSAqIHYgPSBuZXcgc2VndHJlZSgpOwogICAgICAgIHYtPmxlZnQgPSBudWxscHRyOwogICAgICAgIHYtPnJpZ2h0ID0gbnVsbHB0cjsKICAgICAgICB2LT5zdW0gPSAwOwogICAgICAgIHJldHVybiB2OwogICAgfQogICAgc2VndHJlZSAqIHYgPSBuZXcgc2VndHJlZSgpOwogICAgaW50IG1pZCA9IChsK3IpPj4xOwogICAgdi0+bGVmdCA9IGJ1aWxkKGwsIG1pZCk7CiAgICB2LT5yaWdodCA9IGJ1aWxkKCBtaWQrMSwgcik7CiAgICB2LT5zdW0gPSAwOwogICAgcmV0dXJuIHY7Cn0KbGwgbGVzc3RoYW4oc2VndHJlZSAqIHQsIGludCBsLCBpbnQgciwgaW50IGxsKXsKICAgIGlmICggciA8PSBsbCkKICAgICAgICByZXR1cm4gdC0+c3VtOwogICAgaWYobCA9PSByKQogICAgICAgIHJldHVybiAwOwogICAgaW50IG1pZCA9IChsK3IpPj4xOwogICAgbG9uZyBsb25nIGFucyA9IDA7CiAgICBpZiAobWlkIDwgbGwpewogICAgICAgIGFucyArPSBsZXNzdGhhbih0LT5sZWZ0LCBsLCBtaWQsIGxsKTsKICAgICAgICBhbnMgKz0gbGVzc3RoYW4odC0+cmlnaHQsIG1pZCsxLCByLCBsbCk7CiAgICB9ZWxzZXsKICAgICAgICBhbnMgKz0gbGVzc3RoYW4odC0+bGVmdCwgbCwgbWlkLCBsbCk7CiAgICB9CiAgICByZXR1cm4gYW5zOwogICAgCn0KbGwgZ3JlYXRlcXVhbHRoYW4oc2VndHJlZSAqIHQsIGludCBsLCBpbnQgciwgaW50IHJyKXsKICAgIGlmICggcnIgPD0gbCkKICAgICAgICByZXR1cm4gdC0+c3VtOwogICAgaWYobCA9PSByKQogICAgICAgIHJldHVybiAwOwogICAgaW50IG1pZCA9IChsK3IpPj4xOwogICAgbG9uZyBsb25nIGFucyA9IDA7CiAgICBpZiAobWlkID49IHJyKXsKICAgICAgICBhbnMgKz0gZ3JlYXRlcXVhbHRoYW4odC0+bGVmdCwgbCwgbWlkLCBycik7CiAgICAgICAgYW5zICs9IGdyZWF0ZXF1YWx0aGFuKHQtPnJpZ2h0LCBtaWQrMSwgciwgcnIpOwogICAgfWVsc2V7CiAgICAgICAgYW5zICs9IGdyZWF0ZXF1YWx0aGFuKHQtPnJpZ2h0LCBtaWQrMSwgciwgcnIpOwogICAgfQogICAgcmV0dXJuIGFuczsKICAgIAp9CnR5cGVkZWYgcGFpcjxpbnQsaW50PiBwaWk7CiNkZWZpbmUgTUFYTiAyMDAwMTAKc2VndHJlZSAqIGVbTUFYTl07CnZlY3RvcjxwaWk+IGE7CiNkZWZpbmUgeCBmaXJzdAojZGVmaW5lIHkgc2Vjb25kCmludCBtYWluKCkKewogICAgI2lmbmRlZiBPTkxJTkVfSlVER0UKICAgICAgICBmcmVvcGVuKCJpbnB1dC50eHQiLCJyIixzdGRpbik7CiAgICAgICAgZnJlb3Blbigib3V0cHV0LnR4dCIsInciLHN0ZG91dCk7CiAgICAjZW5kaWYKICAgIGludCBoLCB3LCBtOwogICAgY2luID4+IGggPj4gdyA+PiBtOwogICAgaW50IGhtID0gdysxOwogICAgaW50IHZtID0gaCsxOwogICAgZm9yKGludCBpID0gMDsgaSA8IG07ICsrIGkpewogICAgICAgIGludCBfeCwgX3k7IGNpbj4+X3g+Pl95OwogICAgICAgIGEucHVzaF9iYWNrKG1ha2VfcGFpcihfeCxfeSkpOwogICAgICAgIGlmKF94ID09IDEpewogICAgICAgICAgICBobSA9IG1pbihobSwgX3kpOwogICAgICAgIH0KICAgICAgICBpZihfeSA9PSAxKXsKICAgICAgICAgICAgdm0gPSBtaW4odm0sIF94KTsKICAgICAgICB9CiAgICB9CiAgICBzZWd0cmVlICogYmVnID0gYnVpbGQoMSwgaCsyKTsKICAgIHZlY3RvcjxpbnQ+IHIodysxKTsKICAgIHZlY3RvcjxpbnQ+IGRvdyhoKzEpOwogICAgZm9yKGludCBpID0gMTsgaSA8PSB3OyArKyBpKSAgIAogICAgICAgICByW2ldID0gaCsxOwogICAgZm9yKGludCBpID0gMTsgaSA8PSBoOyArKyBpKQogICAgICAgIGRvd1tpXSA9IHcrMTsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBtOyArKyBpKXsKICAgICAgICByW2FbaV0ueV0gPSBtaW4oclthW2ldLnldICwgYVtpXS54KTsgCiAgICAgICAgZG93W2FbaV0ueF0gPSBtaW4oZG93W2FbaV0ueF0sIGFbaV0ueSk7CiAgICB9ICAKICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gdzsgKysgaSl7CiAgICAgICAgZVtpXSA9IGluc2VydChiZWcsIDEsIGgrMiwgcltpXSk7CiAgICAgICAgYmVnID0gZVtpXTsKICAgIH0KICAgIGVbdysxXSA9IGVbd107CiAgICBsbCBzdWJzID0gMDsKICAgIGxsIHJldCA9IDA7CiAgICBmb3IoaW50IGkgPSAxOyBpIDwgdm07ICsraSl7CiAgICAgICAgbGwgdXUgPSBncmVhdGVxdWFsdGhhbihlW21pbihkb3dbaV0tMSwgaG0tMSldLDEsaCsyLGkpOwogICAgICAgIHN1YnMgKz0gdXU7IAogICAgICAgIHJldCArPSBkb3dbaV0tMTsKICAgIH0KICAgIGZvcihpbnQgaSA9IDE7IGkgPCBobTsgKytpKQogICAgICAgIHJldCArPSByW2ldLTE7CiAgICBjb3V0IDw8IHJldCAtIHN1YnMgPDxlbmRsOwogICAgcmV0dXJuIDA7Cn0=