#include <iostream>
#include <algorithm>
using namespace std;
int a[200005];
int b[200005];
int c[200005];
int main() {
int n, m;
cin >> n >> m;
int M = max(n, m);
for (int i = (M - n) + 1; i <= M; i++) {
cin >> a[i];
}
for (int i = (M - m) + 1; i <= M; i++) {
cin >> b[i];
}
//这里cut是进位的值 最低从二进制开始
for (int i = 0, cut = 2; i <= M && cut <= M + 1; i++, cut++) {
c[M - i] += a[M - i] + b[M - i];
if (c[M - i] >= cut) {
c[M - i] -= cut;
c[M - i - 1]++;
}
}
if (c[0] > 0) {
cout << c[0] << " ";
}
for (int i = 1; i <= M; ++i) {
cout << c[i] << " ";
}
cout << endl;
return 0;
}