#include <stdio.h>//这题真没必要死磕,看通过率话就知道这题根本不是入门水平
#include <string.h>
void su(int
        arr[]) { //将前25个素数(1,2,3,5,7...)赋给arr数组(从下标1开始)
    int k, m = 1; //m记录将要获得第几个素数
    for (int i = 1; m <= 25; i++) {
        k = 1;
        for (int j = 2; j <= i / 2; j++) {
            if (i % j == 0)k = 0;
        }
        if (k == 1) {
            arr[m] = i;
            m++;
        }
    }
}

int jiecheng(int arr[], int
             k) { //类似阶乘函数,将素数累乘,从arr[1]开始累乘到arr[k]
    int result = 1;
    for (int i = 1; i <= k; i++)
        result *= arr[i];
    return result;
}
int count(char str[], int len,
          int arr[]) { //计算火星数的十进制数 ,其中str字符串为火星数
    int k = 1, sum = 0, m; //k=1,对应火星数的个位
    for (int i = len - 1; i >= 0;
            i -= 2) { //从后往前遍历str,i-=2是为了将','字符也跳过
        m = str[i] - '0';
        if (str[i - 1] > '0' &&
                str[i - 1] < '9') { //(例如10,2,1中第三位为两位数10,则将十位上的'1' (即str[--i])累加到m里)
            m += (str[--i] - '0') * 10;
        }
        sum += jiecheng(arr, k++) *
               m; // 当前火星数的第k位数 乘以 arr[1]*arr[2]*...*arr[k]
    }
    return sum;
}


int main() {
    int arr[30], al, bl, q[100];
    char a[50], b[50];
    su(arr);
    scanf("%s%s", a, b);
    al = strlen(a);
    bl = strlen(b);
    int sum = count(a, al, arr) + count(b, bl, arr);
    int i;
    for (i = 1; sum != 0; i++) { //q[]得到倒序的火星数
        q[i] = sum % arr[i + 1]; //%除arr[2]才会得到q[1]的值
        sum = sum / arr[i + 1];
    }
    i--;
    printf("%d", q[i--]);
    for (; i >= 1; i--) { //最后反向输出
        printf(",%d", q[i]);
    }



    return 0;
}