#include using namespace std; using ll = long long; #define rep(i, n) for (int i = 0; i < (n); i++) #define repr(i, n) for (int i = (n) - 1; i >= 0; i--) #define range(a) a.begin(), a.end() int main() { int N, Q; cin >> N >> Q; vector X(N), W(N); rep(i, N) cin >> X[i] >> W[i]; vector Y(Q); const ll INF = 1e9; rep(i, Q) cin >> Y[i]; Y.push_back(0); Y.push_back(INF); vector> events; rep(i, N) events.emplace_back(X[i], i); rep(i, Q + 2) events.emplace_back(Y[i], i + N); sort(range(events)); ll pos = 0; ll cost = 0; ll L = 0; ll R = 0; rep(i, N) { cost += X[i] * W[i]; R += W[i]; } vector ans(Q + 2); for (auto p : events) { cost += L * (p.first - pos); cost -= R * (p.first - pos); pos = p.first; if (p.second < N) { L += W[p.second]; R -= W[p.second]; } else { ans[p.second - N] = cost; } } rep(i, Q) cout << ans[i] << '\n'; }