#include <bits/stdc++.h>
using namespace std;
int n, c;
vector<int> a, b;
vector<vector<int> > dp;
int solve(int i, bool k) {
  if (dp[i][k] != 0x3f3f3f3f) return dp[i][k];
  int ans = 0x3f3f3f3f;
  if (i > 0) {
    if (k == 0) {
      ans = min(ans, solve(i - 1, 0) + a[i - 1]);
      ans = min(ans, solve(i - 1, 1) + a[i - 1]);
    } else {
      ans = min(ans, solve(i - 1, 0) + b[i - 1] + c);
      ans = min(ans, solve(i - 1, 1) + b[i - 1]);
    }
  }
  return dp[i][k] = ans;
}
int main() {
  cin >> n >> c;
  a.resize(n + 1);
  b.resize(n + 1);
  for (int i = 1; i <= n - 1; i++) {
    cin >> a[i];
  }
  for (int i = 1; i <= n - 1; i++) {
    cin >> b[i];
  }
  dp.assign(n + 1, vector<int>(2, 0x3f3f3f3f));
  dp[1][0] = 0, dp[1][1] = c;
  solve(n, 0);
  solve(n, 1);
  for (int i = 1; i <= n; i++) {
    cout << min(dp[i][0], dp[i][1]) << " ";
  }
  cout << "\n";
  return 0;
}
