#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define rep(i, n) for (int i = 0; i < int(n); i++) using namespace std; long long MOD = 1000000007; long long INF = 1000000000000000; //10^15 typedef long long ll; typedef unsigned long long ull; ll powMod(ll x, ll n, ll mod) { if (n == 0) return 1; ll t = powMod(x, n/2, mod); t = t * t % mod; if (n & 1) return t * x % mod; return t; } int main(void) { int n, q; cin >> n >> q; pair x[100100]; rep(i, n) cin >> x[i].first >> x[i].second; ll y[100100]; rep(i, q) cin >> y[i]; sort(x, x + n); ll s[100100] = {}, t[100100] = {}; rep(i, n) { s[i + 1] = s[i] + x[i].second; t[i + 1] = t[i] + x[i].first * x[i].second; } rep(i, q) { int nk; if (y[i] < x[0].first) nk = 0; else { int le = 0, ri = n, med; while (ri - le > 1) { med = (ri + le) >> 1; if (x[med].first <= y[i]) le = med; else ri = med; } nk = le + 1; } cout << y[i]*s[nk]-t[nk]+(t[n]-t[nk])-y[i]*(s[n]-s[nk]) << endl; } return 0; }