#include <iostream>
using namespace std;

const int MAX_SIZE = 1000;
const int TEN = 10;
/*
void add(int a[], int b[], int rezultat[]) {
	for (int i = 1; i <= a[0] || i <= b[0]; ++i) {
		int sum = rezultat[i] + a[i] + b[i];
		rezultat[i] = sum % TEN;
		rezultat[i + 1] = sum / TEN;
		rezultat[0] = i;
		if (sum >= TEN) {
			rezultat[0] = i + 1;
		}
	}
}
*/

const int MAX_LENGTH = 1000;

void add(int a[], int b[], int sum[]) {
    int aRev[MAX_LENGTH + 1], bRev[MAX_LENGTH + 1];
    for (int i = 1; i <= a[0]; ++i) {
        aRev[i] = a[a[0] - i + 1];
    }
    aRev[0] = a[0];
    for (int i = 1; i <= b[0]; ++i) {
        bRev[i] = b[b[0] - i + 1];
    }
    bRev[0] = b[0];
    int maxLength;
    if (aRev[0] > bRev[0]) {
        maxLength = aRev[0];
    } else {
        maxLength = bRev[0];
    }
    int carry = 0;
    int sumLength = 0;
    for (int i = 1; i <= maxLength; ++i) {
        if (aRev[1] != 0 || bRev[1] != 0) {
            int currentSum = aRev[i] + bRev[i] + carry % 10;
            sum[++sumLength] = currentSum % 10;
            carry = currentSum / 10;
        }
    }
    if (carry > 0) {
        sum[++sumLength] = carry;
    }
    sum[0] = sumLength;
    for (int i = 0; i <= sumLength; ++i) {
        cout << sum[i] << " ";
    }
}
int main() {
	int a[MAX_SIZE + 1], b[MAX_SIZE + 1], rezultat[MAX_SIZE + 1] = {0};
	cin >> a[0];
	for (int i = 1; i <= a[0]; ++i) {
		cin >> a[i];
	}
	cin >> b[0];
	for (int i = 1; i <= b[0]; ++i) {
		cin >> b[i];
	}
	add(a, b, rezultat);
	for (int i = 0; i <= rezultat[0]; ++i) {
		cout << rezultat[i] << " ";
	}
	return 0;
}
