//#pragma GCC optimize("Ofast,unroll-loops")
//#pragma GCC target("avx2,tune=native")
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
using namespace std;
using namespace __gnu_pbds;
#define file "o"
#define ff(i, a, b) for(auto i=(a); i<=(b); ++i)
#define ffr(i, b, a) for(auto i=(b); i>=(a); --i)
#define nl "\n"
#define ss " "
#define pb emplace_back
#define fi first
#define se second
#define sz(s) (int)s.size()
#define all(s) (s).begin(), (s).end()
#define ms(a,x) memset(a, x, sizeof (a))
#define cn continue
#define re exit(0)
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef vector<int> vi;
typedef vector<ll> vll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef vector<pii> vpii;
typedef vector<pll> vpll;
const int mod=1e9+7;
const int maxn=2e5+15;
const ll inf=4e18;
mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());
ll ran(ll l, ll r){ return uniform_int_distribution<ll>(l, r)(rng); }
inline void rf(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr); cout.tie(nullptr);
if(fopen(file".inp","r")){
freopen(file".inp","r",stdin); freopen(file".out","w",stdout);
}
}
template<typename T> inline void add(T &x, const T &y){ x+=y; if(x>=mod) x-=mod; if(x<0) x+=mod; }
template<typename T> inline bool maxi(T &a, T b){ if(a>=b) return 0; a=b; return 1; }
template<typename T> inline bool mini(T &a, T b){ if(a<=b) return 0; a=b; return 1; }
int n, m, q;
template<class T>
using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
struct line{
ordered_set<int> bp;
inline ll flip(int l, int r){
if(l>r) return 0;
ll cover=0;
bool on = (bp.order_of_key(l)&1);
auto it = bp.lower_bound(l);
int last=l;
while(it!=bp.end() && *it<=r){
int x=*it;
if(on) cover += x-last;
last=x;
++it;
on=!on;
}
if(on) cover += (ll)r-last+1;
auto itl=bp.find(l);
if(itl==bp.end()) bp.insert(l); else bp.erase(itl);
auto itr=bp.find(r+1);
if(itr==bp.end()) bp.insert(r+1); else bp.erase(itr);
return (ll)(r-l+1)-2*cover;
}
};
unordered_map<int, line> v, h;
inline line& get1(int i){
auto it=v.find(i);
if(it==v.end()) it=v.emplace(i, line()).fi;
return it->se;
}
inline line& get2(int j){
auto it=h.find(j);
if(it==h.end()) it=h.emplace(j, line()).fi;
return it->se;
}
signed main(){
rf();
cin>>n>>m>>q;
v.reserve(q*2+15); h.reserve(q*2+15);
v.max_load_factor(0.7f); h.max_load_factor(0.7f);
ll ans=0;
while(q--){
int x1, x2, y1, y2; cin>>x1>>x2>>y1>>y2;
ans+=get1(x1-1).flip(y1, y2);
ans+=get1(x2).flip(y1, y2);
ans+=get2(y1-1).flip(x1, x2);
ans+=get2(y2).flip(x1, x2);
cout<<ans<<nl;
}
re;
}
Ly8jcHJhZ21hIEdDQyBvcHRpbWl6ZSgiT2Zhc3QsdW5yb2xsLWxvb3BzIikKLy8jcHJhZ21hIEdDQyB0YXJnZXQoImF2eDIsdHVuZT1uYXRpdmUiKQojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KI2luY2x1ZGUgPGV4dC9wYl9kcy9hc3NvY19jb250YWluZXIuaHBwPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp1c2luZyBuYW1lc3BhY2UgX19nbnVfcGJkczsKCiNkZWZpbmUgZmlsZSAibyIKI2RlZmluZSBmZihpLCBhLCBiKSBmb3IoYXV0byBpPShhKTsgaTw9KGIpOyArK2kpCiNkZWZpbmUgZmZyKGksIGIsIGEpIGZvcihhdXRvIGk9KGIpOyBpPj0oYSk7IC0taSkKI2RlZmluZSBubCAiXG4iCiNkZWZpbmUgc3MgIiAiCiNkZWZpbmUgcGIgZW1wbGFjZV9iYWNrCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBzeihzKSAoaW50KXMuc2l6ZSgpCiNkZWZpbmUgYWxsKHMpIChzKS5iZWdpbigpLCAocykuZW5kKCkKI2RlZmluZSBtcyhhLHgpIG1lbXNldChhLCB4LCBzaXplb2YgKGEpKQojZGVmaW5lIGNuIGNvbnRpbnVlCiNkZWZpbmUgcmUgZXhpdCgwKQoKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIHVsbDsKdHlwZWRlZiBsb25nIGRvdWJsZSBsZDsKdHlwZWRlZiB2ZWN0b3I8aW50PiB2aTsKdHlwZWRlZiB2ZWN0b3I8bGw+IHZsbDsKdHlwZWRlZiBwYWlyPGludCwgaW50PiBwaWk7CnR5cGVkZWYgcGFpcjxsbCwgbGw+IHBsbDsKdHlwZWRlZiB2ZWN0b3I8cGlpPiB2cGlpOwp0eXBlZGVmIHZlY3RvcjxwbGw+IHZwbGw7Cgpjb25zdCBpbnQgbW9kPTFlOSs3Owpjb25zdCBpbnQgbWF4bj0yZTUrMTU7CmNvbnN0IGxsIGluZj00ZTE4OwoKbXQxOTkzN182NCBybmcoY2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpLnRpbWVfc2luY2VfZXBvY2goKS5jb3VudCgpKTsKbGwgcmFuKGxsIGwsIGxsIHIpeyByZXR1cm4gdW5pZm9ybV9pbnRfZGlzdHJpYnV0aW9uPGxsPihsLCByKShybmcpOyB9CgppbmxpbmUgdm9pZCByZigpewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOyBjb3V0LnRpZShudWxscHRyKTsKICAgIGlmKGZvcGVuKGZpbGUiLmlucCIsInIiKSl7CiAgICAgICAgZnJlb3BlbihmaWxlIi5pbnAiLCJyIixzdGRpbik7IGZyZW9wZW4oZmlsZSIub3V0IiwidyIsc3Rkb3V0KTsKICAgIH0KfQoKdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIHZvaWQgYWRkKFQgJngsIGNvbnN0IFQgJnkpeyB4Kz15OyBpZih4Pj1tb2QpIHgtPW1vZDsgaWYoeDwwKSB4Kz1tb2Q7IH0KdGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIGJvb2wgbWF4aShUICZhLCBUIGIpeyBpZihhPj1iKSByZXR1cm4gMDsgYT1iOyByZXR1cm4gMTsgfQp0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgYm9vbCBtaW5pKFQgJmEsIFQgYil7IGlmKGE8PWIpIHJldHVybiAwOyBhPWI7IHJldHVybiAxOyB9CgppbnQgbiwgbSwgcTsKCnRlbXBsYXRlPGNsYXNzIFQ+CnVzaW5nIG9yZGVyZWRfc2V0ID0gdHJlZTxULCBudWxsX3R5cGUsIGxlc3M8VD4sIHJiX3RyZWVfdGFnLCB0cmVlX29yZGVyX3N0YXRpc3RpY3Nfbm9kZV91cGRhdGU+OwoKc3RydWN0IGxpbmV7CiAgICBvcmRlcmVkX3NldDxpbnQ+IGJwOwogICAgaW5saW5lIGxsIGZsaXAoaW50IGwsIGludCByKXsKICAgICAgICBpZihsPnIpIHJldHVybiAwOwogICAgICAgIGxsIGNvdmVyPTA7CiAgICAgICAgYm9vbCBvbiA9IChicC5vcmRlcl9vZl9rZXkobCkmMSk7CiAgICAgICAgYXV0byBpdCA9IGJwLmxvd2VyX2JvdW5kKGwpOwogICAgICAgIGludCBsYXN0PWw7CiAgICAgICAgd2hpbGUoaXQhPWJwLmVuZCgpICYmICppdDw9cil7CiAgICAgICAgICAgIGludCB4PSppdDsKICAgICAgICAgICAgaWYob24pIGNvdmVyICs9IHgtbGFzdDsKICAgICAgICAgICAgbGFzdD14OwogICAgICAgICAgICArK2l0OwogICAgICAgICAgICBvbj0hb247CiAgICAgICAgfQogICAgICAgIGlmKG9uKSBjb3ZlciArPSAobGwpci1sYXN0KzE7CiAgICAgICAgYXV0byBpdGw9YnAuZmluZChsKTsKICAgICAgICBpZihpdGw9PWJwLmVuZCgpKSBicC5pbnNlcnQobCk7IGVsc2UgYnAuZXJhc2UoaXRsKTsKICAgICAgICBhdXRvIGl0cj1icC5maW5kKHIrMSk7CiAgICAgICAgaWYoaXRyPT1icC5lbmQoKSkgYnAuaW5zZXJ0KHIrMSk7IGVsc2UgYnAuZXJhc2UoaXRyKTsKICAgICAgICByZXR1cm4gKGxsKShyLWwrMSktMipjb3ZlcjsKICAgIH0KfTsKCnVub3JkZXJlZF9tYXA8aW50LCBsaW5lPiB2LCBoOwoKaW5saW5lIGxpbmUmIGdldDEoaW50IGkpewogICAgYXV0byBpdD12LmZpbmQoaSk7CiAgICBpZihpdD09di5lbmQoKSkgaXQ9di5lbXBsYWNlKGksIGxpbmUoKSkuZmk7CiAgICByZXR1cm4gaXQtPnNlOwp9CmlubGluZSBsaW5lJiBnZXQyKGludCBqKXsKICAgIGF1dG8gaXQ9aC5maW5kKGopOwogICAgaWYoaXQ9PWguZW5kKCkpIGl0PWguZW1wbGFjZShqLCBsaW5lKCkpLmZpOwogICAgcmV0dXJuIGl0LT5zZTsKfQoKc2lnbmVkIG1haW4oKXsKICAgIHJmKCk7CiAgICBjaW4+Pm4+Pm0+PnE7CiAgICB2LnJlc2VydmUocSoyKzE1KTsgaC5yZXNlcnZlKHEqMisxNSk7CiAgICB2Lm1heF9sb2FkX2ZhY3RvcigwLjdmKTsgaC5tYXhfbG9hZF9mYWN0b3IoMC43Zik7CiAgICBsbCBhbnM9MDsKICAgIHdoaWxlKHEtLSl7CiAgICAgICAgaW50IHgxLCB4MiwgeTEsIHkyOyBjaW4+PngxPj54Mj4+eTE+PnkyOwogICAgICAgIGFucys9Z2V0MSh4MS0xKS5mbGlwKHkxLCB5Mik7CiAgICAgICAgYW5zKz1nZXQxKHgyKS5mbGlwKHkxLCB5Mik7CiAgICAgICAgYW5zKz1nZXQyKHkxLTEpLmZsaXAoeDEsIHgyKTsKICAgICAgICBhbnMrPWdldDIoeTIpLmZsaXAoeDEsIHgyKTsKICAgICAgICBjb3V0PDxhbnM8PG5sOwogICAgfQogICAgcmU7Cn0K