#ifndef INCLUDED_MAIN #define INCLUDED_MAIN #include __FILE__ using namespace nskr; int main(void){ ll h, w; cin >> h >> w; ll n; cin >> n; vector> t(h,vector(w,true)); vector> mxc(h,vector(w,-1)), mxd(h,vector(w,-1)); for(;n--;){ ll a,b,c,d; cin >> a >> b >> c >> d; a--;b--;c--;d--; if(mxc[a][b] >= c && mxd[a][b] >= d){ continue; } for(ll i=a; i<=c; i++){ for(ll j=b; j<=d; j++){ t[i][j] = false; mxc[i][j] = max(mxc[i][j], c); mxd[i][j] = max(mxd[i][j], d); } } mxc[a][b] = max(mxc[a][b], c); mxd[a][b] = max(mxd[a][b], d); } ll i,j, ans = 0; rep(i,h){ rep(j,w){ if(t[i][j]) ans++; } } cout << ans << "\n"; } #else #include using namespace std; using ll = long long; using ld= long double; #define rep(i,n) for(i=0;i<(n);i++) #define all(a) a.begin(), a.end() #define rall(a) a.rbegin(), a.rend() namespace nskr{} int randint(int a, int b){ static mt19937 gen(chrono::steady_clock::now().time_since_epoch().count()); uniform_int_distribution dist(a,b); return dist(gen); } #endif