#include<bits/stdc++.h>
using namespace std;

#define FOR(i, a, b) for (int i = (a), _b = (b); i <= _b; i++)
#define FORD(i, a, b) for (int i = (a), _b = (b); i >= _b; i--)

using ll = long long;

template<typename X, typename Y>
bool chmax(X& a, Y b) { return (a < b) ? a = b, 1 : 0; }
template<typename X, typename Y>
bool chmin(X& a, Y b) { return (a > b) ? a = b, 1 : 0; }

const int MAXN = 1e6 + 5;

int M, N, Q;
int X[MAXN], Y[MAXN], U[MAXN], V[MAXN];

namespace Subtask1 {
    bool check() {
        return M == 1 && N <= 100 && Q <= 100;
    }
    void solve() {
        vector<int> A(N + 5, 0);
        FOR(i, 1, Q) {
            int l = Y[i], r = V[i];
            FOR(c, l, r) A[c] ^= 1;
        }
        int ans = 0;
        FOR(c, 1, N) ans += A[c];
        cout << ans << "\n";
    }
}
namespace Subtask2 {
    bool check() {
        return M == 1;
    }
    void solve() {
        vector<int> A(N + 5, 0);
        FOR(i, 1, Q) {
            int l = Y[i], r = V[i];
            A[l] ^= 1; A[r + 1] ^= 1;
        }
        int ans = 0;
        FOR(c, 1, N) {
            A[c] ^= A[c - 1];
            ans += A[c];
        }
        cout << ans << "\n";
    }
}

namespace Fulltask {
    void solve() {
        vector<vector<int>> A(M + 5, vector<int>(N + 5, 0));
        FOR(i, 1, Q) {
            int x = X[i], y = Y[i], u = U[i], v = V[i];
            A[x][y] ^= 1; A[u + 1][v + 1] ^= 1;
            A[x][v + 1] ^= 1; A[u + 1][y] ^= 1;
        }
        int ans = 0;
        FOR(r, 1, M) FOR(c, 1, N) {
            A[r][c] ^= A[r - 1][c] ^ A[r][c - 1] ^ A[r - 1][c - 1];
            ans += A[r][c];
        }
        cout << ans << "\n";
    }
}

void solve() {
    cin >> M >> N >> Q;
    FOR(i, 1, Q) cin >> X[i] >> Y[i] >> U[i] >> V[i];
    if (Subtask1::check()) Subtask1::solve();
    else if (Subtask2::check()) Subtask2::solve();
    else Fulltask::solve();
}

int main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL);

    // freopen("LIGHT.INP", "r", stdin);
    // freopen("LIGHT.OUT", "w", stdout);

    int tests = 1; // cin >> tests;
    while (tests--) solve();

    #ifdef LOCAL
    cerr << "\nTime elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.\n";
    #endif
    return 0;
}