n,m=map(int,input().split())
p=list(map(int,input().split()))
c=[tuple(map(int,input().split())) for i in range(n)]
b=[tuple(map(int,input().split())) for i in range(m)]
L=7
X=10**(L-1)
d={}
for fx in [1,-1]:
  for fy in [1,-1]:
    for i in range(n):
      for j in range(m):
        cx,cy=c[i]
        bx,by=b[j]
        v=""
        v+=str((bx-cx*fx)+X).zfill(L)
        v+=str((by-cy*fy)+X).zfill(L)
        v+=str(fx+1).zfill(1)
        v+=str(fy+1).zfill(1)
        if v not in d:
          d[v]=0
        d[v]+=p[i]
print(max([d[v] for v in d]+[0]))