}
void add(int x,int y,ValueType v)
{
for(int i=x;i<=xSize;i+=low(i))
for(int j=y;j<=ySize;j+=low(j))
ta[i][j]+=v;
}
ValueType sum(int x,int y)
{
ValueType v=0;
for(int i=x;i>0;i-=low(i))
for(int j=y;j>0;j-=low(j))
v+=ta[i][j];
return v;
}
public:
ValueType ta[xMaxSize][yMaxSize];
int xSize,ySize;
};
TreeArrayTwo<int,1025,1025> tr;
void show(){
for(int i=1;i<=tr.xSize;i++){
for(int j=1;j<=tr.ySize;j++)
cout<<tr.ta[i][j]<<" ";
cout<<endl;
}
}
int main()
{
// freopen("1.txt","r",stdin);
int n;
int x,y,w,h,v,x2,y2;
while(scanf("%d",&n)!=EOF&&n!=3){
if(n==0){
// cin>>tr.xSize;
scanf("%d",&tr.xSize);
tr.ySize=tr.xSize;
tr.clear();
}
if(n==1){
//cin>>x>>y>>v;
scanf("%d%d%d",&x,&y,&v);
tr.add(x+1,y+1,v);
}
if(n==2){
scanf("%d%d%d%d",&x,&y,&x2,&y2);
//cin>>x>>y>>x2>>y2;
printf("%d/n",tr.sum(x2+1,y2+1)+tr.sum(x,y)-tr.sum(x2+1,y)-tr.sum(x,y2+1));
}
}
}