#ifndef INCLUDED_MAIN #define INCLUDED_MAIN #include __FILE__ using namespace nskr; int main(void){ int h, w; cin >> h >> w; int n; cin >> n; vector> t(h+1,vector(w+1,true)); vector> im(h+1,vector(w+1,1)); int i,j, ans = 0; rep(i,h){ rep(j,w) im[i+1][j+1] += im[i][j+1] + im[i+1][j] - im[i][j]; } for(;n--;){ int a,b,c,d; cin >> a >> b >> c >> d; a--;b--;c--;d--; if(im[c+1][d+1] - im[c+1][b] - im[a][d+1] + im[a][b] == 0){ continue; } for(int i=a; i<=c; i++){ for(int j=b; j<=d; j++){ t[i][j] = false; } } for(int i=a; i<=h; i++){ for(int j=b; j<=w; j++){ if(i+j == 0) im[i][j] = (t[i][j]?1:0) ; else if(i == 0) im[i][j] = (t[i][j]?1:0) + im[i][j-1]; else if(j == 0) im[i][j] = (t[i][j]?1:0) + im[i][j-1]; else im[i][j] = (t[i][j]?1:0) + im[i][j-1] + im[i-1][j] - im[i-1][j-1]; } } } 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