#include<iostream> #include<vector> #include<algorithm> #include<string> using namespace std; int prime[25]; string num1,num2; bool isprime(int n){ for(int i=2;i*i<=n;i++){ if(n%i==0){ return false; } } return true; } void create_prime(){ int index=0; int i=2; while(true){ if(isprime(i)){ prime[index++]=i; } i++; if(index==25){ break; } } } int mars_to_int(string num){ //火星数转换成整数 int ans=0; vector<int> num_; for(int i=0;i<num.size();i++){ if(num[i]==','){ continue; } int temp=0; while(num[i]!=','&&i<num.size()){ temp*=10; temp+=(num[i]-'0'); i++; } num_.push_back(temp); } reverse(num_.begin(),num_.end()); for(int i=0;i<num_.size();i++){ int temp=1; for(int j=0;j<i;j++){ temp=temp*prime[j]; } temp=num_[i]*temp; //cout<<temp<<endl; ans+=temp; } return ans; } string int_to_mars(int n){ //整数转换成火星数 string ans; int i=0; while(n){ int temp=n%prime[i]; ans=to_string(temp)+ans; ans=','+ans; n=n/prime[i]; i++; } ans=ans.substr(1); return ans; } int main(){ create_prime(); cin>>num1>>num2; int ans=mars_to_int(num1)+mars_to_int(num2); cout<<int_to_mars(ans)<<endl; }