#include<iostream>
#include<string>
#include<vector>
using namespace std;
int length(string str){
	int k=1;
	for (int i = 0; i < str.size(); i++){
		if (str[i] == ','){
			k++;
		}
	}
	return k;
}
int main(){
	int arr[25] = { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97 };
	string str1, str2;
	while (cin >> str1 >> str2){
		vector<int>	vec1;
		vector<int>vec2;
		int l1 = length(str1);
		int l2 = length(str2);
		if (l1 > l2){
			for (int i = 0; i < l1 - l2; i++){
				vec2.push_back(0);
			}
		}
		else{
			for (int i = 0; i < l2 - l1; i++){
				vec1.push_back(0);
			}
		}int m;
		for (int i = 0; i < str1.size(); ){
			if (str1[i] != ','){
				if (str1[i + 1] == ','||i+1==str1.size()){
					m = str1[i] - '0';
					vec1.push_back(m);
					i++;
				}
				else{
					m = (str1[i] - '0') * 10 + str1[i + 1] - '0';
					vec1.push_back(m);
					i = i + 2;
				}
			}
			else{
				i++;
			}
		}
		for (int i = 0; i < str2.size();){
			if (str2[i] != ','){
				if (str2[i + 1] == ','||i + 1 == str2.size()){
					m = str2[i] - '0';
					vec2.push_back(m);
					i++;
				}
				else{
					m = (str2[i] - '0') * 10 + str2[i + 1] - '0';
					vec2.push_back(m);
					i = i + 2;
				}
			}
			else{
				i++;
			}
		}
		int x=0, y=0;
		for (int i = vec1.size()-1; i >= 0; i--){
			vec1[i] = vec1[i] + vec2[i]+x;
			x = vec1[i] / arr[y];
			vec1[i] = vec1[i] % arr[y];
			y++;
		}
		if (x != 0){
			vec1.insert(vec1.begin(), 1);
		}
		printf("%d", vec1[0]);
		for (int i = 1; i < vec1.size(); i++){
			printf(",%d", vec1[i]);
		}
		printf("\n");
	}
}