#include <iostream>
#include <vector>
#include <algorithm>
#include <array>
#include <cmath>
#include <queue>
#include <set>
#include <map>
#include <iomanip>
using namespace std;
typedef long long ll;
typedef long double ld;
#define int ll
int32_t main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n,k=0,kp=0,p;
cin>>n>>kp>>p;
int ans=0;
map<int,int> crow,ccol;
map<int,int> xr,xc;
map<int,int> row,col;
map<pair<int,int>,int> st;
auto add = [&](int x,int y,int v)
{
st[{x,y}]=v;
ans-=(n-xc[row[x]]),xr[row[x]]--;
crow[x]++;
row[x]^=v;
ans+=(n-xc[row[x]]),xr[row[x]]++;
ans-=(n-xr[col[y]]),xc[col[y]]--;
ccol[y]++;
col[y]^=v;
ans+=(n-xr[col[y]]),xc[col[y]]++;
};
auto del = [&](int x,int y,int v)
{
ans-=(n-xc[row[x]]),xr[row[x]]--;
crow[x]--;
if(crow[x]==0)crow.erase(x);
row[x]^=v;
ans+=(n-xc[row[x]]),xr[row[x]]++;
ans-=(n-xr[col[y]]),xc[col[y]]--;
ccol[y]--;
if(ccol[y]==0)ccol.erase(y);
col[y]^=v;
ans+=(n-xr[col[y]]),xc[col[y]]++;
};
xc[0]=n;
xr[0]=n;
for(int i=0;i<kp;i++)
{
int x,y;
int v;
cin>>x>>y>>v;
add(x,y,v);
}
for(int i=0;i<p;i++)
{
int x1,y1,x2,y2;
cin>>x1>>y1>>x2>>y2;
int v=st[{x1,y1}];
del(x1,y1,v);
add(x2,y2,v);
cout<<ans<<endl;
}
}