#include <bits/stdc++.h>
using namespace std;
int64_t locatie[200001] , prefix[200001][2] , rezultat[200001];
int main ()
{
ios :: sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
int cantitate , numar_operatii;
cin >> cantitate >> numar_operatii;
for (int indice = 1 ; indice <= cantitate ; indice++)
{ cin >> locatie[indice]; }
int lungime = 0;
int64_t minim = 0 , maxim = 0 , suma = 0;
while (numar_operatii--)
{
int64_t termen;
cin >> termen;
if (suma + termen < minim) {
lungime++;
prefix[lungime][0] = prefix[lungime - 1][0];
prefix[lungime][1] = prefix[lungime - 1][1] + minim - (suma + termen);
minim = suma + termen;
}
if (suma + termen > maxim) {
lungime++;
prefix[lungime][0] = prefix[lungime - 1][0] + (suma + termen) - maxim;
prefix[lungime][1] = prefix[lungime - 1][1];
maxim = suma + termen;
}
suma += termen;
}
rezultat[1] = prefix[lungime][1];
rezultat[cantitate] = prefix[lungime][0];
for (int indice = 1 ; indice < cantitate ; indice++)
{
const int64_t limita = locatie[indice + 1] - locatie[indice];
int stanga = 1 , dreapta = lungime;
while (stanga <= dreapta)
{
const int mijloc = (stanga + dreapta) >> 1;
if (prefix[mijloc][0] + prefix[mijloc][1] <= limita) { stanga = mijloc + 1; }
else { dreapta = mijloc - 1; }
}
rezultat[indice] += prefix[dreapta][0];
rezultat[indice + 1] += prefix[dreapta][1];
if (dreapta < lungime) {
if (prefix[dreapta + 1][0] != prefix[dreapta][0])
{ rezultat[indice] += limita - (prefix[dreapta][0] + prefix[dreapta][1]); }
else
{ rezultat[indice + 1] += limita - (prefix[dreapta][0] + prefix[dreapta][1]); }
}
}
for (int indice = 1 ; indice <= cantitate ; indice++)
{ cout << rezultat[indice] << '\n'; }
return 0;
}