#include<bits/stdc++.h>
using namespace std;
int n,q,x,y,w,d,v,xx=1,yy=1,score=0;
struct dian{
int x;
int y;
int w;
};
bool cmp1(dian a,dian b){
if(a.x!=b.x){
return a.x<b.x;
}else{
return a.y<b.y;
}
}
bool cmp2(dian a,dian b){
if(a.y!=b.y){
return a.y<b.y;
}else{
return a.x<b.x;
}
}
int g[200010],k[200010];
int main(){
cout<<1;
dian h[200010];
dian s[200010];
cin>>n>>q;
for(int i=1;i<=n;i++){
cin>>x>>y>>w;
h[i].x=x;
h[i].y=y;
h[i].w=w;
s[i].x=x;
s[i].y=y;
s[i].w=w;
}
sort(h+1,h+n+1,cmp1);
sort(s+1,s+n+1,cmp2);
for(int i=1;i<=n;i++){
if(g[h[i].x]==0){
g[h[i].x]=i;
}
if(k[s[i].y]==0){
k[s[i].y]=i;
}
}
for(int i=1;i<=q;i++){
cin>>d>>v;
if(d==0){
for(int j=k[y];s[j].y==y;j++){
if(s[j].x>x&&s[j].x<=x+v){
score+=s[j].w;
}
}
xx+=v;
}
if(d==1){
for(int j=g[x];h[j].x==x;j++){
if(h[j].y>y&&h[j].y<=y+v){
score+=h[j].w;
}
}
y+=v;
}
if(d==2){
for(int j=k[y];s[j].y==y;j++){
if(s[j].x>=x-v&&s[j].x<x){
score+=s[j].w;
}
}
x+=v;
}
if(d==3){
for(int j=g[x];h[j].x==x;j++){
if(h[j].y>=y-v&&h[j].y<=y){
score+=h[j].w;
}
}
x+=v;
}
}
cout<<score<<'\n';
return 0;
}