#!/usr/bin/env python import os import sys from io import BytesIO, IOBase from collections import defaultdict as ddic, Counter from itertools import groupby, combinations from heapq import * from math import ceil, gcd # MOD = 10**9 + 7 MOD = 998244353 from math import log2, pi MAGIC = 600 def solve(): N, M = rlist() segs = rlist(N) A = rlist() for i, a in enumerate(A): A[i] = [a, i] A.sort() events = [] for i, (l, r, x, y) in enumerate(segs): events.append([l, i]) events.append([r + 1, ~i]) events.sort() blender = Counter() mask = [0] * (10**5 + 1) ans = [0] * len(A) i = j = 0 for t in range(10**5 + 1): while i < len(A) and A[i][0] < t: i += 1 while j < len(events) and events[j][0] <= t: x, ix = events[j] if ix >= 0: # open l, r, x, y = segs[ix] if x <= MAGIC: blender[x, y] += 1 else: for y0 in range(y, 10**5 + 1, x): mask[y0] += 1 else: # close l, r, x, y = segs[~ix] if x <= MAGIC: blender[x, y] -= 1 if blender[x, y] == 0: del blender[x, y] else: for y0 in range(y, 10**5 + 1, x): mask[y0] -= 1 j += 1 bns = None while i < len(A) and A[i][0] == t: if bns is None: bns = mask[t] for (x, y), v in blender.items(): if t % x == y: bns += v ans[A[i][1]] = bns i += 1 for x in ans: print(x) def main(): T = 1 # T = rint() for tc in range(T): ans = solve() # print(ans) # print("First" if ans else "Second") # print(*ans) # print("YES" if ans else "NO") # for row in ans: print(*row) # region fastio BUFSIZE = 8192 class FastIO(IOBase): newlines = 0 def __init__(self, file): self._file = file self._fd = file.fileno() self.buffer = BytesIO() self.writable = "x" in file.mode or "r" not in file.mode self.write = self.buffer.write if self.writable else None def read(self): while True: b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE)) if not b: break ptr = self.buffer.tell() self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr) self.newlines = 0 return self.buffer.read() def readline(self): while self.newlines == 0: b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE)) self.newlines = b.count(b"\n") + (not b) ptr = self.buffer.tell() self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr) self.newlines -= 1 return self.buffer.readline() def flush(self): if self.writable: os.write(self._fd, self.buffer.getvalue()) self.buffer.truncate(0), self.buffer.seek(0) class IOWrapper(IOBase): def __init__(self, file): self.buffer = FastIO(file) self.flush = self.buffer.flush self.writable = self.buffer.writable self.write = lambda s: self.buffer.write(s.encode("ascii")) self.read = lambda: self.buffer.read().decode("ascii") self.readline = lambda: self.buffer.readline().decode("ascii") sys.stdin, sys.stdout = IOWrapper(sys.stdin), IOWrapper(sys.stdout) input = lambda: sys.stdin.readline().rstrip("\r\n") rint = lambda: int(input()) def rlist(n=0): if n == 0: return list(map(int, input().split())) return [list(map(int, input().split())) for _ in range(n)] # endregion if __name__ == "__main__": main()