#include<stdio.h>
#include<string.h>
//#include
#include
#include<malloc.h>
//using namespace std;
struct node
{
char data;
string sa;
}Nodes[1000];
int old_main()
{
string str;
int te;
int len,i;
int st,js;
while(cin>>str)
{
str += ',';
len = str.length();
int re[1000] = {0};
int cnt1 = 0;
re[cnt1] = -1;
cnt1++;
for(i=0;i<len;i++)
{
if(',' == str[i])
{
re[cnt1] = i;
cnt1++;
}
}
re[cnt1] = len;
int cnt = 0;
for(i=0;i<len;i++)
{
if(',' == str[i])
{
Nodes[cnt].data = str[i-1];
for(int j = re[cnt]+1; j<i-1; j++)
{
Nodes[cnt].sa += str[j];
}
cnt++;
}
}
int index;
for(i=0; i<cnt; i++)
{
char max = '/';
for(int j=0;j<cnt;j++)
{
if((Nodes[j].data != '+') && (Nodes[j].data>max))
{
max = Nodes[j].data;
index = j;
}
}
cout << Nodes[index].sa << Nodes[index].data;
if(i != cnt-1)
{
printf(",");
}
Nodes[index].data = '+';
}
for(i=0;i<1000;i++)
Nodes[i].sa.clear();
printf("\n");
}
}