N,Q = gets.split.map(&:to_i)
LIMIT = 10**9
XN = [[-LIMIT,nil,[]],[LIMIT*2,[],nil]]
YN = [[-LIMIT,nil,[]],[LIMIT*2,[],nil]]
L,R = 1,2
C = N.times.map{|n|
x,y,d,c = gets.split.map(&:to_i)
[[XN,x],[YN,y]].each{|xn,x|
i,j = [x,x+d].map{|x|
i = xn.bsearch_index{|_,|x<=_}
a = xn[i] if xn[i]&&xn[i][0]==x
xn.insert(i,[x,[*xn[i-1][R]],[*xn[i][L]]]) unless a
next i
}
xn[i][R] << n
xn[j][L] << n
(i+1).upto(j-1){|k|
xn[k][L] << n
xn[k][R] << n
}
} if 0<c
next c
}
Q.times{
a,b = gets.split.map(&:to_i)
p [[XN,a],[YN,b]].map{|xn,x|
i = xn.bsearch_index{|_,|x<=_}
ns = xn[i][L]
ns |= xn[i][R] if xn[i][0]==x
next ns
}.inject(:&).sum{|n|C[n]}
}