#include<bits/stdc++.h>
#define int long long
#define P(x,y) ((x)*(1ll<<31)+(y))
using namespace std;
struct Node{
int x,y,z,u,v;
}a[100005];
struct Q{
int v,x,y;
}q[300005];
int cnt;
multiset<int>s[300005],s2[300005];
int tag[300005];
int n,T;
map<int,int>ma;
void update(int t){
set<int>::iterator it;
it=s2[t].begin();
int len=s[t].size();
if(len==1||len==0)return ;
while(it!=s2[t].end()){
s[t].erase(a[*it].z);
a[*it].u=max(a[*it].u,len-1);a[*it].v=max(a[*it].v,(int)*(--s[t].end()));
s[t].insert(a[*it].z);
it++;
}
}
signed main(){
ios::sync_with_stdio(0);
cin>>n;
for(int i=1;n>=i;i++){
cin>>a[i].z>>a[i].x>>a[i].y;
int t=ma[P(a[i].x,a[i].y)];
if(!t){
t=++cnt;
ma[P(a[i].x,a[i].y)]=t;
}
s[t].insert(a[i].z);s2[t].insert(i);
}
for(int i=1;n>=i;i++){
int t=ma[P(a[i].x,a[i].y)];
s[t].erase(a[i].z);
if(s[t].empty()){
s[t].insert(a[i].z);
continue;
}
a[i].u=s[t].size();
a[i].v=*--s[t].end();
s[t].insert(a[i].z);
}
cin>>T;
int v,x,y;
for(int i=1;T>=i;i++)cin>>q[i].v>>q[i].x>>q[i].y;
for(int i=1;T>=i;i++){
v=q[i].v;x=q[i].x;y=q[i].y;
int t=ma[P(a[v].x,a[v].y)];
if(tag[t]){
update(t);
tag[t]=0;
}
s[t].erase(a[v].z);s2[t].erase(v);
if(s[t].empty())
ma[P(a[v].x,a[v].y)]=0;
t=ma[P(x,y)];
a[v].x=x;a[v].y=y;
if(s[t].empty())t=0;
if(t){
a[v].u=max(a[v].u,(int)s[t].size());
a[v].v=max(a[v].v,(int)*--s[t].end());
}else{
t=++cnt;
ma[P(x,y)]=t;
}
s[t].insert(a[v].z);
s2[t].insert(v);
tag[t]=1;
}
for(int i=1;n>=i;i++){
update(ma[P(a[i].x,a[i].y)]);
cout<<a[i].u*a[i].v<<endl;
}
return 0;
}