#include using namespace std; const double PI = acos(-1); vector> fft(vector> A, bool inv){ int N = A.size(); int M = 0; for (int i = 1; i < N; i *= 2){ M++; } for (int i = 0; i < N; i++){ int j = 0; for (int k = 0; k < M; k++){ if ((i >> k) & 1){ j |= 1 << (M - 1 - k); } } if (i < j){ swap(A[i], A[j]); } } for (int i = 1; i < N; i *= 2){ for (int j = 0; j < i; j++){ complex z = polar((double) 1, (2 * PI) / (i * 2) * j * (inv ? -1 : 1)); for (int k = 0; k < N; k += i * 2){ complex s = A[j + k]; complex t = A[j + k + i] * z; A[j + k] = s + t; A[j + k + i] = s - t; } } } if (inv){ for (int i = 0; i < N; i++){ A[i] /= N; } } return A; } vector convolution(vector A, vector B){ int deg = A.size() + B.size() - 1; int N = 1; while (N < deg){ N *= 2; } vector> A2(N); for (int i = 0; i < A.size(); i++){ A2[i] = A[i]; } while (A2.size() < N){ A2.push_back(0); } vector> B2(N); for (int i = 0; i < B.size(); i++){ B2[i] = B[i]; } while (B2.size() < N){ B2.push_back(0); } vector> a = fft(A2, false); vector> b = fft(B2, false); vector> c(N); for (int i = 0; i < N; i++){ c[i] = a[i] * b[i]; } c = fft(c, true); vector ans(deg); for (int i = 0; i < deg; i++){ ans[i] = c[i].real(); } return ans; } int main(){ int N; cin >> N; vector A(N); for (int i = 0; i < N; i++){ cin >> A[i]; } vector B(N); for (int i = 0; i < N; i++){ cin >> B[i]; } vector X(N, 0), Y(N, 0); for (int i = 0; i < N; i++){ X[i] = A[i] + B[i]; Y[i] = i + 1; } vector C = convolution(X, Y); cout << 0; for (int i = 0; i < N * 2 - 1; i++){ cout << ' ' << (long long) (C[i] + 0.5); } cout << endl; }