#include <bits/stdc++.h>
#define SPED \
ios_base::sync_with_stdio(false); \
cin.tie(0); \
cout.tie(0);
#define endl "\n"
#define fi first
#define se second
#define lint long long
#define fami signed
#define lore main
#define freefire freopen
const lint INF = 0x1f1f1f1f1f1f1f1f;
const lint NEG = 0xE1E1E1E1E1E1E1E1;
using namespace std;
struct Seg
{
vector<int> seg;
vector<bool> lazy;
void setup(int N)
{
seg.assign(N * 4 + 2, 0);
lazy.assign(N * 4 + 2, 0);
}
void push(int node, int l, int r)
{
if ((lazy[node] & 1) == 0)
return;
int mid = (l + r) >> 1;
seg[node << 1] = (mid - l + 1) - seg[node << 1];
lazy[node << 1] = !lazy[node << 1];
seg[node << 1 | 1] = (r - mid) - seg[node << 1 | 1];
lazy[node << 1 | 1] = !lazy[node << 1 | 1];
lazy[node] = 0;
}
void update(int node, int l, int r, int templ, int tempr)
{
if (templ <= l and r <= tempr)
{
seg[node] = r - l + 1 - seg[node];
lazy[node] = !lazy[node];
return;
}
else if (r < templ or tempr < l)
return;
push(node, l, r);
int mid = l + r >> 1;
update(node << 1, l, mid, templ, tempr);
update(node << 1 | 1, mid + 1, r, templ, tempr);
seg[node] = seg[node << 1] + seg[node << 1 | 1];
}
lint get(int node, int l, int r, int templ, int tempr)
{
if (templ <= l and r <= tempr)
return seg[node];
else if (r < templ or tempr < l)
return 0;
push(node, l, r);
int mid = l + r >> 1;
return get(node << 1, l, mid, templ, tempr) + get(node << 1 | 1, mid + 1, r, templ, tempr);
}
};
int m, n, q;
vector<Seg> hang, cot;
fami lore()
{
if (fopen("BAI2.inp", "r"))
{
freefire("BAI2.inp", "r", stdin);
freefire("BAI2.out", "w", stdout);
}
SPED;
cin >> m >> n >> q;
hang.resize(m + 5);
cot.resize(n + 5);
for (int i = 0; i <= m + 1; i++)
hang[i].setup(n);
for (int i = 0; i <= n + 1; i++)
cot[i].setup(m);
lint res = 0;
for (int i = 1; i <= q; i++)
{
int x, y, u, v;
cin >> x >> u >> y >> v;
// [x, y] , [u, v]
res -= hang[x - 1].get(1, 1, n, y, v);
res -= hang[u].get(1, 1, n, y, v);
res -= cot[y - 1].get(1, 1, m, x, u);
res -= cot[v].get(1, 1, m, x, u);
hang[x - 1].update(1, 1, n, y, v);
hang[u].update(1, 1, n, y, v);
cot[y - 1].update(1, 1, m, x, u);
cot[v].update(1, 1, m, x, u);
res += hang[x - 1].get(1, 1, n, y, v);
res += hang[u].get(1, 1, n, y, v);
res += cot[y - 1].get(1, 1, m, x, u);
res += cot[v].get(1, 1, m, x, u);
cout << res << endl;
}
}
// Let your soul wander where dreams are born.
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CgojZGVmaW5lIFNQRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBjaW4udGllKDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgY291dC50aWUoMCk7CgojZGVmaW5lIGVuZGwgIlxuIgojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgbGludCBsb25nIGxvbmcKI2RlZmluZSBmYW1pIHNpZ25lZAojZGVmaW5lIGxvcmUgbWFpbgojZGVmaW5lIGZyZWVmaXJlIGZyZW9wZW4KCmNvbnN0IGxpbnQgSU5GID0gMHgxZjFmMWYxZjFmMWYxZjFmOwpjb25zdCBsaW50IE5FRyA9IDB4RTFFMUUxRTFFMUUxRTFFMTsKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgU2VnCnsKICAgIHZlY3RvcjxpbnQ+IHNlZzsKICAgIHZlY3Rvcjxib29sPiBsYXp5OwoKICAgIHZvaWQgc2V0dXAoaW50IE4pCiAgICB7CiAgICAgICAgc2VnLmFzc2lnbihOICogNCArIDIsIDApOwogICAgICAgIGxhenkuYXNzaWduKE4gKiA0ICsgMiwgMCk7CiAgICB9CgogICAgdm9pZCBwdXNoKGludCBub2RlLCBpbnQgbCwgaW50IHIpCiAgICB7CiAgICAgICAgaWYgKChsYXp5W25vZGVdICYgMSkgPT0gMCkKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIGludCBtaWQgPSAobCArIHIpID4+IDE7CgogICAgICAgIHNlZ1tub2RlIDw8IDFdID0gKG1pZCAtIGwgKyAxKSAtIHNlZ1tub2RlIDw8IDFdOwogICAgICAgIGxhenlbbm9kZSA8PCAxXSA9ICFsYXp5W25vZGUgPDwgMV07CgogICAgICAgIHNlZ1tub2RlIDw8IDEgfCAxXSA9IChyIC0gbWlkKSAtIHNlZ1tub2RlIDw8IDEgfCAxXTsKICAgICAgICBsYXp5W25vZGUgPDwgMSB8IDFdID0gIWxhenlbbm9kZSA8PCAxIHwgMV07CgogICAgICAgIGxhenlbbm9kZV0gPSAwOwogICAgfQoKICAgIHZvaWQgdXBkYXRlKGludCBub2RlLCBpbnQgbCwgaW50IHIsIGludCB0ZW1wbCwgaW50IHRlbXByKQogICAgewogICAgICAgIGlmICh0ZW1wbCA8PSBsIGFuZCByIDw9IHRlbXByKQogICAgICAgIHsKICAgICAgICAgICAgc2VnW25vZGVdID0gciAtIGwgKyAxIC0gc2VnW25vZGVdOwogICAgICAgICAgICBsYXp5W25vZGVdID0gIWxhenlbbm9kZV07CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAociA8IHRlbXBsIG9yIHRlbXByIDwgbCkKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIHB1c2gobm9kZSwgbCwgcik7CiAgICAgICAgaW50IG1pZCA9IGwgKyByID4+IDE7CiAgICAgICAgdXBkYXRlKG5vZGUgPDwgMSwgbCwgbWlkLCB0ZW1wbCwgdGVtcHIpOwogICAgICAgIHVwZGF0ZShub2RlIDw8IDEgfCAxLCBtaWQgKyAxLCByLCB0ZW1wbCwgdGVtcHIpOwogICAgICAgIHNlZ1tub2RlXSA9IHNlZ1tub2RlIDw8IDFdICsgc2VnW25vZGUgPDwgMSB8IDFdOwogICAgfQoKICAgIGxpbnQgZ2V0KGludCBub2RlLCBpbnQgbCwgaW50IHIsIGludCB0ZW1wbCwgaW50IHRlbXByKQogICAgewogICAgICAgIGlmICh0ZW1wbCA8PSBsIGFuZCByIDw9IHRlbXByKQogICAgICAgICAgICByZXR1cm4gc2VnW25vZGVdOwogICAgICAgIGVsc2UgaWYgKHIgPCB0ZW1wbCBvciB0ZW1wciA8IGwpCiAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgIHB1c2gobm9kZSwgbCwgcik7CiAgICAgICAgaW50IG1pZCA9IGwgKyByID4+IDE7CiAgICAgICAgcmV0dXJuIGdldChub2RlIDw8IDEsIGwsIG1pZCwgdGVtcGwsIHRlbXByKSArIGdldChub2RlIDw8IDEgfCAxLCBtaWQgKyAxLCByLCB0ZW1wbCwgdGVtcHIpOwogICAgfQp9OwoKaW50IG0sIG4sIHE7CnZlY3RvcjxTZWc+IGhhbmcsIGNvdDsKCmZhbWkgbG9yZSgpCnsKICAgIGlmIChmb3BlbigiQkFJMi5pbnAiLCAiciIpKQogICAgewogICAgICAgIGZyZWVmaXJlKCJCQUkyLmlucCIsICJyIiwgc3RkaW4pOwogICAgICAgIGZyZWVmaXJlKCJCQUkyLm91dCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KICAgIFNQRUQ7CiAgICBjaW4gPj4gbSA+PiBuID4+IHE7CiAgICBoYW5nLnJlc2l6ZShtICsgNSk7CiAgICBjb3QucmVzaXplKG4gKyA1KTsKCiAgICBmb3IgKGludCBpID0gMDsgaSA8PSBtICsgMTsgaSsrKQogICAgICAgIGhhbmdbaV0uc2V0dXAobik7CgogICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gbiArIDE7IGkrKykKICAgICAgICBjb3RbaV0uc2V0dXAobSk7CgogICAgbGludCByZXMgPSAwOwoKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IHE7IGkrKykKICAgIHsKICAgICAgICBpbnQgeCwgeSwgdSwgdjsKICAgICAgICBjaW4gPj4geCA+PiB1ID4+IHkgPj4gdjsKCiAgICAgICAgLy8gW3gsIHldICwgW3UsIHZdCgogICAgICAgIHJlcyAtPSBoYW5nW3ggLSAxXS5nZXQoMSwgMSwgbiwgeSwgdik7CiAgICAgICAgcmVzIC09IGhhbmdbdV0uZ2V0KDEsIDEsIG4sIHksIHYpOwogICAgICAgIHJlcyAtPSBjb3RbeSAtIDFdLmdldCgxLCAxLCBtLCB4LCB1KTsKICAgICAgICByZXMgLT0gY290W3ZdLmdldCgxLCAxLCBtLCB4LCB1KTsKCiAgICAgICAgaGFuZ1t4IC0gMV0udXBkYXRlKDEsIDEsIG4sIHksIHYpOwogICAgICAgIGhhbmdbdV0udXBkYXRlKDEsIDEsIG4sIHksIHYpOwogICAgICAgIGNvdFt5IC0gMV0udXBkYXRlKDEsIDEsIG0sIHgsIHUpOwogICAgICAgIGNvdFt2XS51cGRhdGUoMSwgMSwgbSwgeCwgdSk7CgogICAgICAgIHJlcyArPSBoYW5nW3ggLSAxXS5nZXQoMSwgMSwgbiwgeSwgdik7CiAgICAgICAgcmVzICs9IGhhbmdbdV0uZ2V0KDEsIDEsIG4sIHksIHYpOwogICAgICAgIHJlcyArPSBjb3RbeSAtIDFdLmdldCgxLCAxLCBtLCB4LCB1KTsKICAgICAgICByZXMgKz0gY290W3ZdLmdldCgxLCAxLCBtLCB4LCB1KTsKCiAgICAgICAgY291dCA8PCByZXMgPDwgZW5kbDsKICAgIH0KfQovLyBMZXQgeW91ciBzb3VsIHdhbmRlciB3aGVyZSBkcmVhbXMgYXJlIGJvcm4u