#include <stdio.h>
int x[1000001],y[1000001];
struct b
{
int summax;
int summin;
int diffmax;
int diffmin;
int l;
int r;
}a[10000000];
int max(int a,int b)
{
if(a>b)
return a;
return b;
}
int min(int a,int b)
{
if(a>b)
return b;
return a;
}
//int counter=0;
void create(int index,int l,int r)
{
a[index].l=l;
a[index].r=r;
if(l==r)
{
a[index].summax=x[l]+y[l];
a[index].diffmax=y[l]-x[l];
a[index].summin=x[l]+y[l];
a[index].diffmin=y[l]-x[l];
}
else
{
create(2*index,l,(l+r)/2);
create(2*index+1,(l+r)/2+1,r);
a[index].summax=max(a[2*index].summax,a[2*index+1].summax);
a[index].summin=min(a[2*index].summin,a[2*index+1].summin);
a[index].diffmax=max(a[2*index].diffmax,a[2*index+1].diffmax);
a[index].diffmin=min(a[2*index].diffmin,a[2*index+1].diffmin);
}
return;
}
void update(int index,int in,int x,int y)
{
int l=a[index].l;
int r=a[index].r;
if(l==r)
{
if(r==in)
{
a[index].summax=x+y;
a[index].diffmax=y-x;
a[index].summin=x+y;
a[index].diffmin=y-x;
}
return;
}
int mid=(l+r)/2;
if(in<=mid)
{
update(2*index,in,x,y);
a[index].summax=max(a[2*index].summax,a[2*index+1].summax);
a[index].summin=min(a[2*index].summin,a[2*index+1].summin);
a[index].diffmax=max(a[2*index].diffmax,a[2*index+1].diffmax);
a[index].diffmin=min(a[2*index].diffmin,a[2*index+1].diffmin);
}
if(in>mid)
{
update(2*index+1,in,x,y);
a[index].summax=max(a[2*index].summax,a[2*index+1].summax);
a[index].summin=min(a[2*index].summin,a[2*index+1].summin);
a[index].diffmax=max(a[2*index].diffmax,a[2*index+1].diffmax);
a[index].diffmin=min(a[2*index].diffmin,a[2*index+1].diffmin);
}
return;
}
b make(b l,b r)
{
b temp;
temp.summax=max(l.summax,r.summax);
temp.summin=min(l.summin,r.summin);
temp.diffmax=max(l.diffmax,r.diffmax);
temp.diffmin=min(l.diffmin,r.diffmin);
return temp;
}
b ans(int index,int l2,int r2)
{
int l=a[index].l;
int r=a[index].r;
if(l>=l2&&r<=r2)
{
return a[index];
}
int mid=(l+r)/2;
if(r2<=mid)
return ans(2*index,l2,r2);
else if (l2>mid)
return ans(2*index+1,l2,r2);
else
{
b temp=make(ans(2*index,l2,r2),ans(2*index+1,l2,r2));
temp.l=l;
temp.r=r;
return temp;
}
}
int main()
{
int n,i,m;
scanf ("%d",&n);
for(i=0;i<n;i++)
{
scanf ("%d%d",&x[i],&y[i]);
}
create(1,0,n-1);
scanf ("%d",&m);
while (m--)
{
// for(int index=1;index<8;index++)
// printf ("%d %d %d %d %d %d\n",a[index].l,a[index].r,a[index].summax,a[index].summin,a[index].diffmax,a[index].diffmin);
char tt[10];
scanf ("%s",&tt);
if(tt[0]=='U')
{
int x,y,in;
scanf ("%d%d%d",&in,&x,&y);
update(1,in,x,y);
}
else
{
int x,y;
scanf ("%d%d",&x,&y);
printf ("%d\n",max((ans(1,x,y).summax-ans(1,x,y).summin),(ans(1,x,y).diffmax-ans(1,x,y).diffmin)));
}
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CmludCB4WzEwMDAwMDFdLHlbMTAwMDAwMV07CnN0cnVjdCBiCnsKCWludCBzdW1tYXg7CglpbnQgc3VtbWluOwoJaW50IGRpZmZtYXg7CglpbnQgZGlmZm1pbjsKCWludCBsOwoJaW50IHI7Cn1hWzEwMDAwMDAwXTsKaW50IG1heChpbnQgYSxpbnQgYikKewoJaWYoYT5iKQoJCXJldHVybiBhOwoJcmV0dXJuIGI7Cn0KaW50IG1pbihpbnQgYSxpbnQgYikKewoJaWYoYT5iKQoJCXJldHVybiBiOwoJcmV0dXJuIGE7Cn0KLy9pbnQgY291bnRlcj0wOwp2b2lkIGNyZWF0ZShpbnQgaW5kZXgsaW50IGwsaW50IHIpCnsKCQoJYVtpbmRleF0ubD1sOwoJYVtpbmRleF0ucj1yOwoJaWYobD09cikKCXsKCQlhW2luZGV4XS5zdW1tYXg9eFtsXSt5W2xdOwoJCWFbaW5kZXhdLmRpZmZtYXg9eVtsXS14W2xdOwoJCWFbaW5kZXhdLnN1bW1pbj14W2xdK3lbbF07CgkJYVtpbmRleF0uZGlmZm1pbj15W2xdLXhbbF07Cgl9CgllbHNlCgl7CgkJY3JlYXRlKDIqaW5kZXgsbCwobCtyKS8yKTsKCQljcmVhdGUoMippbmRleCsxLChsK3IpLzIrMSxyKTsKCQlhW2luZGV4XS5zdW1tYXg9bWF4KGFbMippbmRleF0uc3VtbWF4LGFbMippbmRleCsxXS5zdW1tYXgpOwoJCWFbaW5kZXhdLnN1bW1pbj1taW4oYVsyKmluZGV4XS5zdW1taW4sYVsyKmluZGV4KzFdLnN1bW1pbik7CgkJYVtpbmRleF0uZGlmZm1heD1tYXgoYVsyKmluZGV4XS5kaWZmbWF4LGFbMippbmRleCsxXS5kaWZmbWF4KTsKCQlhW2luZGV4XS5kaWZmbWluPW1pbihhWzIqaW5kZXhdLmRpZmZtaW4sYVsyKmluZGV4KzFdLmRpZmZtaW4pOwoJfQoJcmV0dXJuOwp9CnZvaWQgdXBkYXRlKGludCBpbmRleCxpbnQgaW4saW50IHgsaW50IHkpCnsKCWludCBsPWFbaW5kZXhdLmw7CglpbnQgcj1hW2luZGV4XS5yOwoJaWYobD09cikKCXsKCQlpZihyPT1pbikKCQl7CgkJCWFbaW5kZXhdLnN1bW1heD14K3k7CgkJCWFbaW5kZXhdLmRpZmZtYXg9eS14OwoJCQlhW2luZGV4XS5zdW1taW49eCt5OwoJCQlhW2luZGV4XS5kaWZmbWluPXkteDsKCQl9CglyZXR1cm47Cgl9CglpbnQgbWlkPShsK3IpLzI7CglpZihpbjw9bWlkKQoJewoJCXVwZGF0ZSgyKmluZGV4LGluLHgseSk7CgkJYVtpbmRleF0uc3VtbWF4PW1heChhWzIqaW5kZXhdLnN1bW1heCxhWzIqaW5kZXgrMV0uc3VtbWF4KTsKCQlhW2luZGV4XS5zdW1taW49bWluKGFbMippbmRleF0uc3VtbWluLGFbMippbmRleCsxXS5zdW1taW4pOwoJCWFbaW5kZXhdLmRpZmZtYXg9bWF4KGFbMippbmRleF0uZGlmZm1heCxhWzIqaW5kZXgrMV0uZGlmZm1heCk7CgkJYVtpbmRleF0uZGlmZm1pbj1taW4oYVsyKmluZGV4XS5kaWZmbWluLGFbMippbmRleCsxXS5kaWZmbWluKTsKCX0KCWlmKGluPm1pZCkKCXsKCQl1cGRhdGUoMippbmRleCsxLGluLHgseSk7CgkJYVtpbmRleF0uc3VtbWF4PW1heChhWzIqaW5kZXhdLnN1bW1heCxhWzIqaW5kZXgrMV0uc3VtbWF4KTsKCQlhW2luZGV4XS5zdW1taW49bWluKGFbMippbmRleF0uc3VtbWluLGFbMippbmRleCsxXS5zdW1taW4pOwoJCWFbaW5kZXhdLmRpZmZtYXg9bWF4KGFbMippbmRleF0uZGlmZm1heCxhWzIqaW5kZXgrMV0uZGlmZm1heCk7CgkJYVtpbmRleF0uZGlmZm1pbj1taW4oYVsyKmluZGV4XS5kaWZmbWluLGFbMippbmRleCsxXS5kaWZmbWluKTsKCX0KCXJldHVybjsKfQpiIG1ha2UoYiBsLGIgcikKewoJYiB0ZW1wOwoJdGVtcC5zdW1tYXg9bWF4KGwuc3VtbWF4LHIuc3VtbWF4KTsKCXRlbXAuc3VtbWluPW1pbihsLnN1bW1pbixyLnN1bW1pbik7Cgl0ZW1wLmRpZmZtYXg9bWF4KGwuZGlmZm1heCxyLmRpZmZtYXgpOwoJdGVtcC5kaWZmbWluPW1pbihsLmRpZmZtaW4sci5kaWZmbWluKTsKCXJldHVybiB0ZW1wOwp9CgpiIGFucyhpbnQgaW5kZXgsaW50IGwyLGludCByMikKewoJaW50IGw9YVtpbmRleF0ubDsKCWludCByPWFbaW5kZXhdLnI7CglpZihsPj1sMiYmcjw9cjIpCgl7CgkJcmV0dXJuIGFbaW5kZXhdOwoJfQoJaW50IG1pZD0obCtyKS8yOwoJaWYocjI8PW1pZCkKCQlyZXR1cm4gYW5zKDIqaW5kZXgsbDIscjIpOwoJZWxzZSBpZiAobDI+bWlkKQoJCXJldHVybiBhbnMoMippbmRleCsxLGwyLHIyKTsKCWVsc2UKCXsKCQliIHRlbXA9bWFrZShhbnMoMippbmRleCxsMixyMiksYW5zKDIqaW5kZXgrMSxsMixyMikpOwoJCXRlbXAubD1sOwoJCXRlbXAucj1yOwoJCXJldHVybiB0ZW1wOwoJfQp9CmludCBtYWluKCkKewoJaW50IG4saSxtOwoJc2NhbmYgKCIlZCIsJm4pOwoJCglmb3IoaT0wO2k8bjtpKyspCgl7CgkJc2NhbmYgKCIlZCVkIiwmeFtpXSwmeVtpXSk7Cgl9CgljcmVhdGUoMSwwLG4tMSk7CglzY2FuZiAoIiVkIiwmbSk7Cgl3aGlsZSAobS0tKQoJewkKCS8vCWZvcihpbnQgaW5kZXg9MTtpbmRleDw4O2luZGV4KyspCgkvLwkJcHJpbnRmICgiJWQgJWQgJWQgJWQgJWQgJWRcbiIsYVtpbmRleF0ubCxhW2luZGV4XS5yLGFbaW5kZXhdLnN1bW1heCxhW2luZGV4XS5zdW1taW4sYVtpbmRleF0uZGlmZm1heCxhW2luZGV4XS5kaWZmbWluKTsKCQljaGFyIHR0WzEwXTsKCQlzY2FuZiAoIiVzIiwmdHQpOwoJCWlmKHR0WzBdPT0nVScpCgkJewoJCQlpbnQgeCx5LGluOwoJCQlzY2FuZiAoIiVkJWQlZCIsJmluLCZ4LCZ5KTsKCQkJdXBkYXRlKDEsaW4seCx5KTsKCQl9CgkJZWxzZQoJCXsKCQkJaW50IHgseTsKCQkJc2NhbmYgKCIlZCVkIiwmeCwmeSk7CgkJCXByaW50ZiAoIiVkXG4iLG1heCgoYW5zKDEseCx5KS5zdW1tYXgtYW5zKDEseCx5KS5zdW1taW4pLChhbnMoMSx4LHkpLmRpZmZtYXgtYW5zKDEseCx5KS5kaWZmbWluKSkpOwoJCX0KCX0KCXJldHVybiAwOwp9