20250626
# import sys
# input=sys.stdin.readline
# a=input().strip()
# l=len(a)
# at=0
# ca=0
# cb=0
# cbb=0
# for i in range(l):
# if a[i]=='A':
# ca+=1
# if a[i]=='B' and ca:
# at+=1
# ca-=1
# for i in range(l):
# if a[i]=='B':
# cb+=1
# if a[i]=='C' and cb:
# at+=1
# cb-=1
# for i in range(l):
# if a[i]=='B':
# cbb+=1
# s=min(cbb,at)
# print(s)
import sys,bisect
input=sys.stdin.readline
n,q=map(int,input().split())
a=[]
for i in range(n):
x,y=map(int,input().split())
a.append((x,y))
a=sorted(a,key=lambda x:x[0])
b=[-sum(a[i][1] for i in range(n))]
for i in range(n):
b.append(b[-1]+a[i][1]*2)
c=[sum((a[i][0]-a[i][1])*a[i][1] for i in range(n))]
for i in range(n-1):
c.append(c[-1]+(a[i+1][0]-a[i][0])*b[i+1])
for _ in range(q):
x=int(input())
t=bisect.bisect(a,(x+1,0))
if t:
print(c[i-1]+(x-a[i-1][0])*b[i])
else:
print(c[0]+(x-a[0][0])*b[0])




