using namespace std;
int xx[60000],yy[60000];
struct node{
bool fafe;
int length,hao[5],x[2],y[2];
node * clidren[4];
}pp[1000000];
void lon(node *x){
x->length=0;
x->fafe=false;
}
int a,b,r,ans,lp,ll;
void pan(int i){
if((a-xx[i])*(a-xx[i])+(b-yy[i])*(b-yy[i])<=r*r) ans++;
}
void add(int ii,node * x);
void fen(node * x){
int mx=(x->x[0]+x->x[1])>>1;
int my=(x->y[0]+x->y[1])>>1;
for (int i=0;i<4;i++) x->clidren[i]=&pp[lp++];
x->clidren[0]->x[0]=x->x[0];
x->clidren[0]->x[1]=mx;
x->clidren[0]->y[0]=x->y[0];
x->clidren[0]->y[1]=my;
x->clidren[1]->x[0]=mx+1;
x->clidren[1]->x[1]=x->x[1];
x->clidren[1]->y[0]=x->y[0];
x->clidren[1]->y[1]=my;
x->clidren[2]->x[0]=x->x[0];
x->clidren[2]->x[1]=mx;
x->clidren[2]->y[0]=my+1;
x->clidren[2]->y[1]=x->y[1];
x->clidren[3]->x[0]=mx+1;
x->clidren[3]->x[1]=x->x[1];
x->clidren[3]->y[0]=my+1;
x->clidren[3]->y[1]=x->y[1];
for(int i=0;i<4;i++) lon(x->clidren[i]);
for(int j=0;j< x->length ;j++){
int ii=x->hao[j];
for(int i=0;i<4;i++){
if(x->clidren[i]->x[0]<=xx[ii]&&x->clidren[i]->x[1]>=xx[ii]&&x->clidren[i]->y[0]<=yy[ii]&&x->clidren[i]->y[1]>=yy[ii]){
add(ii,x->clidren[i]);
break;
}
}
}
x->fafe=true;
x->length=0;
}
void add(int ii,node * x){
if(!x->fafe){
x->hao[x->length++]=ii;
if(x->length>ll) fen(x);
}
else{
for(int i=0;i<4;i++){
if (x->clidren[i]->x[0]<=xx[ii]&&x->clidren[i]->x[1]>=xx[ii]&&x->clidren[i]->y[0]<=yy[ii]&&x->clidren[i]->y[1]>=yy[ii]){
add(ii,x->clidren[i]);
break;
}
}
}
}
void query(node * x,int l,int r,int xi,int s){
if(!x->fafe){
if(x->length){
for (int i=0;i<x->length;i++)
pan(x->hao[i]);
}
return ;
}
for(int i=0;i<4;i++){
if(l>=x->clidren[i]->x[0]&&r<=x->clidren[i]->x[1]&&xi>=x->clidren[i]->y[0]&&s<=x->clidren[i]->y[1]){
query(x->clidren[i],l,r,xi,s);
return ;
}
}
if(l>=x->clidren[1]->x[0]){
query(x->clidren[1],l,r,xi,x->clidren[1]->y[1]);
query(x->clidren[3],l,r,x->clidren[3]->y[0],s);
}
else if(r<=x->clidren[0]->x[1]){
query(x->clidren[0],l,r,xi,x->clidren[0]->y[1]);
query(x->clidren[2],l,r,x->clidren[2]->y[0],s);
}
else if (xi>=x->clidren[2]->y[0]){
query(x->clidren[2],l,x->clidren[2]->x[1],xi,s);
query(x->clidren[3],x->clidren[3]->x[0],r,xi,s);
}
else if (s<=x->clidren[0]->y[1]){
query(x->clidren[0],l,x->clidren[0]->x[1],xi,s);
query(x->clidren[1],x->clidren[1]->x[0],r,xi,s);
}
else{
query(x->clidren[0],l,x->clidren[0]->x[1],xi,x->clidren[0]->y[1]);
query(x->clidren[1],x->clidren[1]->x[0],r,xi,x->clidren[1]->y[1]);
query(x->clidren[2],l,x->clidren[2]->x[1],x->clidren[2]->y[0],s);
query(x->clidren[3],x->clidren[3]->x[0],r,x->clidren[3]->y[0],s);
}
}
int main(){
// freopen("input.txt","r",stdin);
int n,m;
scanf("%d%d",&n,&m);
pp[0].x[0]=0; pp[0].x[1]=30000;
pp[0].y[0]=0; pp[0].y[1]=30000;
lon(&pp[0]);
lp=1; ll=4;
for(int i=0;i<n;i++){
scanf("%d%d",&xx[i],&yy[i]);
add(i,&pp[0]);
}
for(int i=0;i<m;i++){
scanf("%d%d%d",&a,&b,&r);
ans=0;
query(&pp[0],max(0,a-r),min(30000,a+r),max(0,b-r),min(30000,b+r));
printf("%d\n",ans);
}
return 0;
}