#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

typedef long long ll;

int main() {
    int N, Q;
    cin >> N >> Q;
    vector<ll> A(N + 1); // 1-based indexing
    vector<ll> prefix_sum(N + 1, 0);

    for (int i = 1; i <= N; ++i) {
        cin >> A[i];
    }

    sort(A.begin() + 1, A.end()); // Sort the array
    for (int i = 1; i <= N; ++i) {
        prefix_sum[i] = prefix_sum[i - 1] + A[i];
    }

    for (int qi = 0; qi < Q; ++qi) {
        ll x;
        cin >> x;
        ll total_sum = 0;

        for (int l = 1; l <= N; ++l) {
            // Find the maximum r such that A[l] + A[r] <= x
            ll target = x - A[l];
            int r = upper_bound(A.begin() + l, A.end(), target) - A.begin() - 1;

            if (r < l) continue; // No valid r for this l

            ll t = r - l + 1;
            ll S = prefix_sum[r] - prefix_sum[l - 1];
            total_sum += (S - A[l] * t);
        }
        cout << total_sum << endl;
    }

    return 0;
}
