#include <bits/stdc++.h>
#define pb push_back
#define eb emplace_back
#define all(a) begin(a), end(a)
#define F first
#define S second
using namespace std;
using ll = long long;
vector<ll> v, Q;
void load() {
int n, q;
cin >> n >> q;
v.resize(n);
Q.resize(q);
for (auto &it : v) cin >> it;
for (auto &it: Q) cin >> it;
}
void fix(vector<ll> const &a, vector<ll> const &b, vector<pair<ll, int>> const &items, vector<ll> &ans) {
int p = (int)size(a) - 1;
for (auto const &[len, idx] : items) {
while (p >= 0 && a[p] + b[p] > len) --p;
ll add = 0;
if (p != size(a) - 1) add = max(add, len - b[p + 1]);
if (p != -1) add = max(add, a[p]);
ans[idx] += add;
}
}
void solve() {
Q.insert(begin(Q), 0);
partial_sum(begin(Q), end(Q), begin(Q));
vector<ll> mxs(size(Q)), mns(size(Q));
partial_sum(begin(Q), end(Q), begin(mxs), [](ll a, ll b) {
return max(a, b);
});
partial_sum(begin(Q), end(Q), begin(mns), [](ll a, ll b) {
return max(a, -b);
});
vector<ll> ans(size(v));
vector<pair<ll, int>> rs(size(v) - 1), ls(size(v) - 1);
ans[0] += mns.back();
ans.back() += mxs.back();
for (int i = 0; i < size(v); ++i) {
if (i != 0) ls[i - 1] = {v[i] - v[i - 1], i};
if (i != size(v) - 1) rs[i] = {v[i+1] - v[i], i};
}
sort(all(rs), greater<>());
sort(all(ls), greater<>());
fix(mxs, mns, rs, ans);
fix(mns, mxs, ls, ans);
for (auto it: ans) {
cout << it << '\n';
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
load();
solve();
return 0;
}