#include <iostream>

using namespace std;

int main()
{
     string s; char x;  cin>>s;

    for (int i=0; i<s.size(); i+=2) {
        for (int j=0; j<i; j+=2) {
             if (s[i]<s[j]) {
        x = s[j]; s[j] = s[i]; s[i] = x;
           }
    }

    }
    cout<<s;
    return 0;
}

#include <bits/stdc++.h>

using namespace std;

int main(){
  vector<char> t;
  vector<int> num;
  char k;
  while(cin >> k){
    t.push_back(k);
  }
  int l = t.size();
  for(int i=0;i<l;i+=2){
    int g = t[i];
    num.push_back(g);
  }
  sort(num.begin(),num.end());
  int j = num.size();
  for(int i=0;i<j;i++){
        cout << (char)num[i];
        if(i!=j-1){
          cout << "+";

        }

  }
  cout << endl;
  return 0;
}

// 1532095252031

#include<iostream>
#include<algorithm>
#include<string>
#include<cstring>
using namespace std;
char y[10];
int main()
{
  string x;
  int k=-1;
  int m;
  cin>>x;
m=x.size ();
  for (int i=0;i<m;i=i+2)
  {
      if (x[i]=='1')
      {
          k++;
          y[k]='1';
          k++;
          y[k]='+';
      }
  }
 for (int i=0;i<m;i=i+2)
  {
      if (x[i]=='2')
      {
          k++;
          y[k]='2';
          k++;
          y[k]='+';
      }
  }
  for (int i=0;i<m;i=i+2)
  {
        if (x[i]=='3')
      {
          k++;
          y[k]='3';
          k++;
          y[k]='+';
      }
  }
  for (int i=0;i<k;i++)
  {
      cout<<y[i];
  }
  return 0;
}

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int l,i,j;
    char s[100];
    cin >> s;
    l=strlen(s);
    for(i=0;i<l;i+=2){
        for(j=0;j<l-i-2;j+=2){
            if(s[j]>s[j+2]){
                swap(s[j],s[j+2]);
            }
        }
    }
    printf("%s",s);
    return 0;
}

#include<cstdio>
#include<string.h>
int main(void)
{
	int z=0;
	char x[100],y;
	scanf("%s",&x);
	z=strlen(x);
	for(int i=0;i<z;i++)
	for(int j=0;j<z-1;j=j+2)
	if(x[j]>x[j+2])
	{
	y=x[j];
	x[j]=x[j+2];
	x[j+2]=y;
	}
	printf("%s",x);

}

#include<bits/stdc++.h>
using namespace std;

int main()
{
	char s[100];
	cin>>s;
	int len = strlen(s);
	int size = len/2 +1;
	int a[size],i,j;
	for(i=0,j=0; i<len; i++)
	{
		if(s[i]!='+')
		{
			a[j] = s[i]-'0';
			j++;
		}
	}
	//for(int i=0; i<size; i++)	cout<<a[i];
	int temp;
	for(i=0; i<size-1; i++)
	{
		for(j=i+1; j<size; j++)
		{
			if(a[i] > a[j])
			{
				temp = a[i];
				a[i] = a[j];
				a[j] = temp;
			}
		}
	}
	for(i=0; i<size; i++)
	{
		if(i)	cout<<"+";
		cout<<a[i];
	}
	cout<<endl;
	return 0;
}

#include <iostream>

int main(){

	int n;
	std::string mat;
	std::string outs;
	std::cin>>mat;
	n = (int)mat.size();
	int one = 0;
	int two = 0;
	int three  = 0;
	int plus = 0;
	for(auto x : mat){
		if(x == '1') one++;
		else if(x == '2') two++;
		else if(x == '3') three++;

 		}
 		plus = one + two + three - 1;

 	for(int i = 0; i< one; ++i){
		outs.push_back('1');
		if(plus>0){
		outs.push_back('+');
		plus--;}
		}
		for(int i = 0; i< two; ++i){
		outs.push_back('2');
		if(plus>0){
		outs.push_back('+');
		plus--;}
		}
		for(int i = 0; i< three; ++i){
		outs.push_back('3');
		if(plus>0){
		outs.push_back('+');
		plus--;}
		}
	if(n==1){
		outs= mat;
		}
	std::cout<<outs;

	return 0;
	}

#include<iostream>
#include<string.h>
#include<vector>;
#include<algorithm>
using namespace std;
int main()
{
	string input;

	while(cin>>input)
	{
		vector <char> number;
		for(int i=0;i<input.length();i=i+2)
		{
			number.push_back(input[i]);
		}
		sort(number.begin(),number.begin()+number.size());
		for(int i=0;i<number.size()-1;i++ )
		{
			cout<<number[i];
			cout<<"+";
		}
		cout<<number[number.size()-1];
	}

}

#include <iostream>
#include <cstdio>
#include <string>
#include <cctype>
#include <math.h>
#include <algorithm>

using namespace std;

int main ()
{
    string eq;

    cin >> eq;
    int x = (eq.length()-floor(eq.length()/2));
    int num [x];
    x=0;

    for (int i =0; i < eq.length(); i+=2){
         if (eq[i] == '1'){
            num[x] = 1;
            x++;
         }
         else if (eq[i] == '2'){
            num[x] = 2;
            x++;
         }else if (eq[i] == '3'){
            num[x] = 3;
            x++;
         }
    }
    x = (eq.length()-floor(eq.length()/2));
    sort(num,num+x);
    x = (sizeof(num)/sizeof(num[0]));

    for (int i = 0; i <x; i++){
        if(i != 0 )
            cout<< '+' ;
        cout << num[i] ;
    }
    return 0;
}

#include<bits/stdc++.h>
#include<iostream>
using namespace std;
int main(void)
{

    string stream;
    getline(cin,stream);
    for(int i=0;i<=stream.length();i+=2)
    {
        for(int j=i+2;j<=stream.length();j+=2)
        {
            if(stream[i] > stream[j])
            {
                int temp = stream[i];
                stream[i] = stream[j];
                stream[j] = temp;
            }
        }
    }
    cout<<stream;
    return 0;
}

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<string>
#include<stack>
#include<set>
#include<queue>
#include<map>
#include<iomanip>
#include<vector>
using namespace std;

#define ll long long
#define ull unsigned long long
const ll mod = 1e9+7;
const int maxn = 1e5+7;
int m,n,b,c,d;
ll maxd;
ll sum = 0;
int main()
{
  string s1, s2;
  cin >> s1;
  for(int i = 0; i < s1.length(); i+=2)
  s2+=s1[i];
  sort(s2.begin(),s2.end());
  cout << s2[0];
  for(int i = 1; i < s2.length(); i++)
    cout << "+" << s2[i];
  cout << endl;
  return 0;
}

/*
С�˼Ѷ�ϲ������������������������ͬ����С���������
��Щ�ַ����ɴ�д��Сд��������ĸ��ɡ����ڣ�Petya��Ҫ���������ַ������бȽϡ�
��ĸ��Сд����Ҫ����д��ĸ����Ϊ��ͬ����Ӧ��Сд��ĸ������Petya���бȽϡ�
*/

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n=0,a[1001];string s;
	cin>>s;
	for(int i=0;i<s.size();i++){
		if(s[i]>='0'&&s[i]<='9')
		a[++n]=s[i]-'0';
	}
	sort(a+1,a+n+1);
	for(int i=1;i<n;i++)
	cout<<a[i]<<"+";
	cout<<a[n];
	return 0;
}

#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
using namespace std;

int main() {
	vector<int>v;
	string input;
	int i, n;

	cin >> input;
	int len = input.length();

	for (i = 0; i < len; i++){
		if (input[i] != '+') {
            n = input[i] - '0'; // convert char to int
            v.push_back(n);
		}
	}

	sort(v.begin(), v.end());

	for (i = 0; i < v.size(); i++) {
        cout << v[i];
        if (i <= v.size() - 2 && v.size() > 1)
            cout << "+";
	}

	return 0;
}

//#include "stdafx.h"
#include "stdio.h"
#include <iostream>
#include <string>
using namespace std;

int position(string s, int nb)
{
	int p = 0;
	for (int i = 0; i < s.length(); i++)
	{
		if (s[i] - '0' == nb)
			p = i+1;

	}
	return p;
}

int main()
{
	string s;
	string res ="";
	s.push_back('+');
	getline(cin, s);
	for (int i = 1; i < 4; i++)
	{
		//int p = position(s, i);
		while (int p = position(s, i))
		{
			s.erase(p-1, 2);
			res.push_back((char)i + '0');
			res.push_back('+');

		}

	}
	res.pop_back();
	cout << res;
    return 0;
}

#include<iostream>
#include <string>
using namespace std;
 int main()
 {
     string s;
int x;
     cin>>s;
x=s.length();

         for (int i=x-1; i>0 ;i-=2)
         {
            for ( int j=0; j<i; j+=2)
             if(s[j] > s[j+2])
swap (s[j],s[j+2]);

         }
         cout<<s;
         return 0;
 }

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
string ulaz;
int main()
{
    cin>> ulaz;
    vector<char> numbers;
    for(unsigned int i=0; i<ulaz.length()+1; i+=2){
        numbers.push_back(ulaz.at(i));
    }
    sort(numbers.begin(), numbers.end());
    for(unsigned int i=0; i<numbers.size(); i++){
        if(i!=numbers.size()-1){
            cout << numbers.at(i);
            cout << "+";
        }else{
            cout << numbers.at(i);
        }
    }
    return 0;
}

#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<cmath>
#include<cstring>
#include<climits>
#include<algorithm>
#include<vector>
#include<set>
#include<map>
#include<bitset>
#include<stack>
#include<queue>
using namespace std;

string convert(char *inp){
	char *brokenString = strtok(inp, "+");
	vector<int> nums;
	while(brokenString != NULL){
		int temp = atoi(brokenString);
		nums.push_back(temp);
		brokenString = strtok(NULL, "+");
	}
	sort(nums.begin(), nums.end());
	string res = to_string(nums[0]);
	for(int i = 1; i < nums.size(); i++){
		res += "+" + to_string(nums[i]);
	}
	return res;
}

int main(){
	char inp[100];
	cin >> inp;
	string res = convert(inp);
	cout << res << endl;
	return 0;
}

#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;

int main()
{
    char num[1001];
    cin >> num;
    bool a = true;
    for(int i = 0; i < strlen(num); i++)
    {
        if(num[i] == '+')
        {
            a = false;
            break;
        }
    }
    if(a)
    {
        cout << num << endl;
        return 0;
    }
    int arr[1001];
    for(int i = 0; i < 1001; i++)
    {
        arr[i] = -1;
    }
    for(int i = 0; i < strlen(num); i++)
    {
        if(num[i] >= '1' && num[i] <= '3')
        {
            arr[i] = num[i] - '0';
        }
    }
    sort(arr, arr + 1001);
    for(int i = 0; i < 1001; i++)
    {
        if(arr[i] != -1 && i != 1000)
        {
            cout << arr[i] << "+";
        }
        else if(arr[i] != -1 && i == 1000)
        {
            cout << arr[i] << endl;
            break;
        }
    }
    return 0;
}

#include <iostream>
#include <string>
using namespace std;
int main()
{
	string str;
	cin >> str;
	int l = str.length();
for (int x = 0; x < l; x+=2)
{
		int temp, i, j;
	for (i = 0; i < l; i+=2)
	{
		for (j = 0; j < l; j+=2)
		{
			if (str[j] > str[i])
			{
				temp = str[i];
				str[i] = str[j];
				str[j] = temp;
			}
		}
	}

	cout << str[x];
	if (x < l-1)
		cout << "+";
}
	return 0;
}

 #include <iostream>
#include <string>
#include <deque>
#include<algorithm>
using namespace std;

int main()
{
    string a;
    cin >> a;
    int q=0,w=0,e=0;
    for (int i = 0; i < a.size(); i ++) {
        if(a[i]=='1')
        q++;
        else if (a[i]=='2')
        w++;
        else if(a[i]=='3')
        e++;
    }
    string b;
    if(a.size()==1)
    cout<<a;
    else{
   for(int i=0;i<q;i++){
 b.push_back('1');
 b.push_back('+');
 }
    for(int i=0;i<w;i++){
      b.push_back('2');
      b.push_back('+');
   }
       for(int i=0;i<e;i++){
        b.push_back('3');
        b.push_back('+');
   }
        b.pop_back();
        cout<<b;
    }

    return 0;
}

#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
using namespace std;

int main()
{
    int count = 1e5;

    //cin >> count;
    //while (count--)
    {
        string s;                                   //3+2+1
        cin >> s;
        char temp = ' ';
        for (int i = 0; i < s.length(); i+=2)
        {
            for (int j = i+2; j < s.length(); j+=2)
            {
                if (s[i] > s[j])
                {   //3
                    temp = ' ';
                    temp = s[i];
                    s[i] = s[j];
                    s[j] = temp;
                }
            }
        }

        cout <<s<< endl;
    }
    return 0;
}

#include<iostream>
#include<string.h>
using namespace std;
string a;
int index[101];
int main()
{
    cin>>a;
    for(int i = 0; i < a.size(); i=i+2)
    {
        index[a[i]-'0']++;
    }
    if(index[1]>0)
    {
        for(int i = 0; i <index[1];i++)
        {
            cout<<1;
            if(i<index[1]-1)
            {
                cout<<"+";
            }
        }
    }
    if(index[2]>0 && index[1]>0)
    {
        cout<<"+";
    }
    if(index[2]>0)
    {
        for(int i = 0; i <index[2];i++)
        {
            cout<<2;
            if(i<index[2]-1)
            {
                cout<<"+";
            }
        }
    }
        if(index[3]>0 && index[1]>0 && index[2]==0)
            cout<<"+";
        if(index[2]>0 && index[3]>0 && index[1]==0)
            cout<<"+";
        if(index[2]>0 && index[3]>0 && index[1]>0)
            cout<<"+";
    if(index[3]>0)
    {
        for(int i = 0; i<index[3];i++)
        {
            cout<<3;
            if(i<index[3]-1)
            {
                cout<<"+";
            }
        }
    }
}

#include <stdio.h>
#include <string.h>

int main(void)
{
	char f[200];
	int g[4] = { 0 }, mark = 0;
	scanf("%s", f);
	for (int i = 0; i < strlen(f); ++i)
		g[f[i] - '0']++;

	for (int j = 0; j < 4; ++j)
	{
		for (int k = 0; k < g[j]; ++k)
		{
			if (mark == 0)
			{ 	printf("%d", j); mark = 1; }
			else
				printf("+%d", j);
		}
	}
	printf("\n");

	return 0;
}

#include <iostream>
#include<string>
using namespace std;
int main() {

int i,n,k=0,count1=0,count2=0,count3=0;

string a;
cin>>a;

for(i=0;i<a.length();i=i+2)
{
if(a[i]=='1')
count1++;
else if(a[i]=='2')
count2++;
else
count3++;
}

for(i=0;i<count1-1;i++)
          {
	cout<<"1+";
          }
if(count1>0)
{if(count2>0||count3>0)
	cout<<"1+";
	else
	cout<<"1";}

for(i=0;i<count2-1;i++)
{
	cout<<"2+";
}
	 if(count2>0)
	 {if(count3>0)
	cout<<"2+";
	else
	cout<<"2";}

	for(i=0;i<count3-1;i++)
	{

	cout<<"3+";
	}
	if(count3>0)
	cout<<3;

	return 0;
}

#include <iostream>
#include <algorithm>

using namespace std;

int main() {
	string s;
	cin >> s;
	sort(s.begin(), s.end());

	for(auto it = s.begin(); it != s.end(); ++it) {
		char c = (*it);
		if(c != '+') {
			cout << c;
			if( (it + 1) != s.end() ) cout << "+";
		}
	}
	return 0;
}

#include <bits/stdc++.h>
#define pb push_back
#define mp make_pair
#define fr first
#define sc second
#define MOD 1000000007
#define len(x) x.size()
#define min3(a, b, c) min(a, min(b, c))
#define max3(a, b, c) max(a, max(b, c))
#define all(v) v.begin(), v.end()
#define alla(a,n) a, a + n

using namespace std;

typedef long long ll;
typedef unsigned long long ull;
typedef pair<ll, ll> pll;
typedef vector<ll> vll;
typedef vector<pll> vpll;
typedef vector<vll> vvll;
typedef vector<string> vs;

int main() {

    #ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin) ;
    freopen("output.txt", "w", stdout) ;
    #endif
    ios_base::sync_with_stdio(false);
    cin.tie(NULL) ; cout.tie(NULL) ;

    string s;
    cin >> s;
    vector<int> a;
    for (int i = 0; i < s.length(); i++) {
        if (s[i] != '+')
            a.emplace_back(s[i] - '0');
    }
    sort(a.begin(), a.end());
    if (s.length() == 1)
        cout << s << "\n";
    else {
        int i;
        for (i = 0; i < a.size() - 1; i++)
            cout << a[i] << '+';
        cout << a[i] << "\n";
    }

    return 0 ;
}

#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
int main(){
       string s;
       cin>>s;
       vector<char> v;
       for(int i=0;i<s.length();++i){
                 if(i%2==0)
                 v.push_back(s[i]);
       }
       sort(v.begin(),v.end());
       for(int i=0;i<v.size();++i){
                 if(i==v.size()-1)
                 cout<<v[i];
                 else
                 cout<<v[i]<<"+";
       }
          return 0;
}

#include<iostream>
#include<string>
using namespace std;

int main(){
	string text;
	cin>>text;
	int a=0;
	int b=0;
	int c=0;
	for(int i=0;i<text.length();i+=2){
		if(text[i]=='1'){
			a++;
		}
		else if(text[i]=='2'){
			b++;
		}
		else{
			c++;
		}
	}
	string op;
	for(int i=0;i<a;i++){
		op=op+"1+";
	}
	for(int i=0;i<b;i++){
		op=op+"2+";
	}
	for(int i=0;i<c;i++){
		op=op+"3+";
	}
	for(int i=0;i<text.length();i++){
		cout<<op[i];
	}
}

#include <iostream>
#include <algorithm>
using namespace std;
int main () {
	string str;
	int s[50];
	cin >> str;
	int i, j = 0;
	for(i = 0; i < str.size(); i += 2)
		s[j++] = str[i] - 48;
	sort(s, s+j);
	if(j!=1){
		for(i = 0; i < j - 1; ++i)
			cout << s[i] << "+";
		cout << s[i];
	}
	else
		cout << s[0];
	return 0;
}

#include<bits/stdc++.h>
using namespace std;

char s1[102];
char s3[102];
int main()
{
    int j=0;
    cin.getline(s1,100);

    for(int i=0;i<strlen(s1);i++)
    {
        s3[j]=s1[i];
        j++;
        i++;
    }
    sort(s3,s3+strlen(s3));
    for(int i=0;i<strlen(s3);i++)
    {
             s1[2*i]=s3[i];
    }
    cout<<s1;
}

#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
int main(){

  string a;
  int b[100];

  cin>>a;
  int j=0;

  for(size_t i=0;i<a.size();i++){

      if(a[i]!='+'){

      b[j]=int(a[i])-48;
      j++;
    }

}

      sort(b,b+j);
  if(j>1){
    for(size_t t=0;t<j-1;t++){
       cout<<b[t]<<"+";

     }
     cout<<b[j-1];
  }else cout<<b[0];

cout<<endl;
  return 0;
}

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
    char a[105];int i;
    cin>>a;
    sort(a,a+strlen(a));
    for(i=0;i<strlen(a)-1;i++)
    {
        if(a[i]!='+')
            cout<<a[i]<<"+";
    }
    cout<<a[i];
}

#include <bits/stdc++.h>
using namespace std;

string a;
int main(){
    cin >> a;
    for(int i = 0; i<a.length();i++){
        for(int j = 0; j<a.length() - 1; j+=2){
            if(a[j] > a[j+2]){
                swap(a[j],a[j+2]);
            }
        }
    }
    cout << a;
}

#include <bits/stdc++.h>

using namespace std;
using llu = long long unsigned;

template <class T, class U>
inline T mem_cast(const U &y) {
  static T x; x = 0;
  memcpy(&x, &y, min(sizeof x, sizeof y));
  return x;
}

template <class RandomIt>
void radix_sort(RandomIt first, RandomIt last) {
  static RandomIt ptr;
  static vector<llu> v, tmp;
  static int bucket[0x10001];
  static const vector<llu> shift = {0x0, 0x10, 0x20, 0x30};

  int n = distance(first, last);
  v.resize(max(v.size(), (size_t) n));
  tmp.resize(max(tmp.size(), (size_t) n));

  using type_t = typename decay<decltype(*first)>::type;

  for (llu amount : shift) {
    memset(bucket, 0, sizeof bucket);
    ptr = first;
    for (int i = 0; i < n; i++)
      bucket[1 + ((mem_cast<llu>(*ptr) >> amount) & 0xffff)]++, ptr++;
    for (int i = 1; i <= 0x10000; i++)
      bucket[i] += bucket[i - 1];
    ptr = first;
    for (int i = 0; i < n; i++)
      v[bucket[(mem_cast<llu>(*ptr) >> amount) & 0xffff]++] = *ptr, ptr++;
    ptr = first;
    for (int i = 0; i < n; i++)
      tmp[i] = *ptr, ptr++;
    ptr = first;
    for (int i = 0; i < n; i++)
      *ptr = mem_cast<type_t>(v[i]), ptr++;
    for (int i = 0; i < n; i++)
      v[i] = tmp[i];
  }
}

int main() {
  string s;
  cin >> s;
  replace(s.begin(), s.end(), '+', ' ');
  stringstream ss(s);
  using T = char;
  T x;
  vector<T> v;
  while (ss >> x) {
    v.push_back(x);
  }
  sort(v.begin(), v.end());
  for (T &x : v)
    cout << x << "+\n"[&x == &v.back()];
  return 0;
}

#include <bits/stdc++.h>
#include <vector>
using namespace std;
#define int long long

int32_t main()
{
	string s,op="";
	cin>>s;
	vector<int> arr;
	for(int i=0;i<s.length();i++) if(s[i]!='+') arr.push_back((int)s[i]);
	sort(arr.begin(),arr.end());
	op = op + (char)(arr[0]);
	for(int i=1;i<arr.size();i++) {
	    op += '+';
	    op = op + (char)(arr[i]);
	}
	cout<<op;
	return 0;
}

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>

using namespace std;

int main()
{
    string s;
    cin>>s;
    vector<int>v;
    for(int i=0;i<s.size();i++){
        if(s[i]!='+'){
            v.push_back(s[i]-48);
        }
    }
    sort(v.begin(),v.end());
    cout<<v[0];
    for(int i=1;i<v.size();i++){
        cout<<'+'<<v[i];
    }
    return 0;
}

#include <stdio.h>
#include <string.h>
int main ()
{
      char s[1000];
      int i, j = 0, k, l, ln, arr[1000], m, n, temp;
      scanf("%s", s);
      ln = strlen(s);
      for(i = 0; i < ln; i++)
      {
          if((i % 2) == 0)
          {
              arr[j] = (int) s[i];
              j++;
          }
      }
      for(m = 1; m < j; m++)
     {
          for(n = 0; n < j - m; n++)
         {
              if(arr[n] > arr[n + 1])
              {
                  temp = arr[n];
                  arr[n] = arr[n + 1];
                  arr[n + 1] = temp;
              }
          }
      }
      for(k = 0; k < j; k++)
      {
          if(k == (j - 1))
          {
              printf("%c", (char) arr[k]);
          }
          else
          {
              printf("%c%c", (char) arr[k], '+');
          }
      }
      printf("\n");

      return 0;
}

#include <bits/stdc++.h>

using namespace std;
using llu = long long unsigned;

template <class T, class U>
T mem_cast(const U &y) {
  static T x; x = 0;
  memcpy(&x, &y, min(sizeof x, sizeof y));
  return x;
}

template <class RandomIt>
void radix_sort(RandomIt first, RandomIt last) {
  static RandomIt ptr;
  static vector<llu> v, tmp;
  static int bucket[0x10001];
  static const vector<llu> shift = {0x0, 0x10, 0x20, 0x30};

  int n = distance(first, last);
  v.resize(max(v.size(), (size_t) n));
  tmp.resize(max(tmp.size(), (size_t) n));

  using type_t = typename decay<decltype(*first)>::type;

  for (llu amount : shift) {
    memset(bucket, 0, sizeof bucket);
    ptr = first;
    for (int i = 0; i < n; i++)
      bucket[1 + (int)((mem_cast<llu>(*ptr) >> amount) & 0xffff)]++, ptr++;
    for (int i = 1; i <= 0x10000; i++)
      bucket[i] += bucket[i - 1];
    ptr = first;
    for (int i = 0; i < n; i++)
      v[bucket[(int)((mem_cast<llu>(*ptr) >> amount) & 0xffff)]++] = *ptr, ptr++;
    ptr = first;
    for (int i = 0; i < n; i++)
      tmp[i] = *ptr, ptr++;
    ptr = first;
    for (int i = 0; i < n; i++)
      *ptr = mem_cast<type_t>(v[i]), ptr++;
    for (int i = 0; i < n; i++)
      v[i] = tmp[i];
  }
}

int main() {
  cout.precision(0);
  cout.setf(ios::fixed);
  string s;
  cin >> s;
  using T = int;
  vector<T> ans;
  for (char c : s)
    if (c != '+')
      ans.push_back(c - '0');
  radix_sort(ans.begin(), ans.end());
  for (T &x : ans)
    cout << x << "+\n"[&x == &ans.back()];
  return 0;
}

#include <iostream>
#include <string>

using namespace std;

template<typename T>
void printArr(T &arr) {
	for (int i = 0; i < strlen(arr); ++i) {
		cout << arr[i];
	}
	cout << endl;
}

template<typename T>
void mySwap(T &a, T &b) {
	int temp = a;
	a = b;
	b = temp;
}

template<typename T>
void bubleSort(T &arr, int size) {
	int count = 0;
	for (int j = 0; j < size; j++) {
		//printf("%d. Sorting contine... \n", j);
		for (int i = 0; i < (size - 1); ++i) {
			//printf("itaration %d = ", i);
			//printArr(arr);
			if (arr[i] > arr[i + 1]) {
				mySwap(arr[i], arr[i + 1]);
				count++;
			}
		}
		if (count == 0) {
			break;
		}
		count = 0;
	}
}

int main() {

	char* sum = new char[100];

	cin >> sum;

	char* sumAfterSort = new char[50];
	int size = strlen(sum);
	int j = 0;
	for (int i = 0; i < size; i += 2) {
		sumAfterSort[j] = sum[i];
		j++;
	}
	sumAfterSort[j] = '\0';
	int newSize = strlen(sumAfterSort);
	bubleSort(sumAfterSort, newSize);

	for (int i = 0; i < newSize; i++) {
		if (i == newSize - 1) {
			cout << sumAfterSort[i] << endl;
		}
		else {
			cout << sumAfterSort[i] << "+";
		}
	}

}

#include <iostream>
#include <string>

using namespace std;

template<typename T>
void printArr(T &arr) {
	for (int i = 0; i < strlen(arr); ++i) {
		cout << arr[i];
	}
	cout << endl;
}

template<typename T>
void mySwap(T &a, T &b) {
	int temp = a;
	a = b;
	b = temp;
}

template<typename T>
void bubleSort(T* arr, int size) {
	for (int j = 0; j < size; ++j) {
		for (int i = 0; i < (size - 1); ++i) {
			if (arr[i] > arr[i + 1]) {
				mySwap(arr[i], arr[i + 1]);
			}
		}
	}
}

int main() {

	char* sum = new char[100];

	cin >> sum;

	char* sumAfterSort = new char[50];
	int size = strlen(sum);
	int j = 0;
	for (int i = 0; i < size; i += 2) {
		sumAfterSort[j] = sum[i];
		j++;
	}
	sumAfterSort[j] = '\0';
	int newSize = strlen(sumAfterSort);
	bubleSort(sumAfterSort, newSize);

	for (int i = 0; i < newSize; i++) {
		if (i == newSize - 1) {
			cout << sumAfterSort[i] << endl;
		}
		else {
			cout << sumAfterSort[i] << "+";
		}
	}

}

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int l,i,j;
    char s[100];
    scanf("%s",s);
    l=strlen(s);
    for(i=0;i<l;i+=2){
        for(j=0;j<l-i-2;j+=2){
            if(s[j]>s[j+2]){
                swap(s[j],s[j+2]);
            }
        }
    }
    printf("%s",s);
    return 0;
}

#include <bits/stdc++.h>
#include <vector>

using namespace std;

int main() {
    string input;
    cin >> input;

    vector<int> v;

    for (int i = 0; i < input.length(); i++) {
        if (string(1, input[i]).compare("+") != 0) {
            v.push_back(stoi(string(1, input[i])));
        }
    }

    sort(v.begin(), v.end());

    for(int i = 0; i < v.size(); i++) {
        if (i != v.size() - 1) {
            cout << to_string(v.at(i)) + "+";
        }
        else {
            cout << to_string(v.at(i));
        }
    }
}

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using std::cout;
using std::cin;
using std::vector;
using std::string;
using std::sort;

int main()
{
    vector<int> numbers;
    string str;
    cin >> str;
    for (int i = 0; i < str.length(); i += 2)
    {
        numbers.push_back(atoi(str.substr(i, 1).c_str()));
    }
    sort(numbers.begin(), numbers.end());
    str = "";
    char *num = new char[2];
    //for (auto i : numbers)
    for (int i = 0; i < numbers.size(); ++i)
    {
        //cout << i;
        _itoa_s(numbers.at(i), num, 2, 10);
        str += num;
        str += '+';
        //cout << str;
    }
    str.pop_back();
    cout << str;
    //std::system("pause");

    return 0;
}

#include<iostream>
#include<cstdlib>
#include<string>
using namespace std;
int main()
{
	string s;
	int a1=0,a2=0,a3=0;
	cin>>s;
	for(int i=0;;i=i+2)
	{
		if(s[i]=='1')
			a1++;
		else
		{
			if(s[i]=='2')
				a2++;
			else
			{
				if(s[i]=='3')
					a3++;
				else
					break;
			}
		}
	}
	for(int i=0;a1||a2||a3;i=i+2)
	{
		if(a1)
		{
			s[i]='1';
			a1--;
		}
		else
		{
			if(a2)
			{
				s[i]='2';
				a2--;
			}
			else
			{
				s[i]='3';
				a3--;
			}
		}
	}
	cout<<s;
return 0;
}

#include <iostream>
#include<vector>
#include<algorithm>
#include<sstream>
using namespace std;
int main(){
    vector<int>arr;
    string s;
    cin>>s;
    stringstream ss(s);
    int k;
    char ch;
    while(ss>>k){
        arr.push_back(k);
        ss>>ch;
    }
    sort(arr.begin(),arr.end());
    for(int i=0;i<arr.size()-1;i++){
        cout<<arr[i]<<"+";
    }
    cout<<arr[arr.size()-1];
    return 0;
}

#include <bits/stdc++.h>
using namespace std;int a[105],n,i=2;main(){while(cin>>a[n++]);sort(a,a+n);cout<<a[1];for(;i<n;i++)cout<<'+'<<a[i];}

#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>

using namespace std;
int main()
{
    char s[110];
    int a[4];
    memset(a, 0, sizeof(a));
    scanf("%s", s);
    int cnt1, cnt;
    cnt1 = cnt = 0;
    int len = strlen(s);
    for(int i = 0; i < len; i++)
    {
        if(s[i] != '+')
        {
            a[s[i] - '0']++;
            cnt1++;
        }
    }
    for(int i = 1; i <= 3; i++)
    {
        for(int j = 0; j < a[i]; j++)
        {

            printf("%c", '0' + i);
            cnt++;
            if(cnt != cnt1)
                printf("+");
        }
    }
}

#include<iostream>
#include<string>
#include<cmath>

using namespace std;

string str;
int a[51],j=0, len,i;
char temp;
int main() {

    cin >> str;

    len = str.length();

    for(i=0 ; i< len; i+=2 )
    {
        for(j=i+2 ; j < len ; j+=2)
        {
            if(str[i] > str[j])
            {
                temp = str[i];
                str[i] = str[j];
                str[j] = temp;
            }
        }
    }

    for(i=0; i < len; i++ )
    {
      cout << str[i];
    }

return 0;

}

#include<bits/stdc++.h>
using namespace std;
string s;
int n[100001],x;
int main(){
	cin>>s;
	for(int i=0;i<s.size();i+=2){
		n[s[i]-'0']++;
	}
	for(int i=1;i<=3;i++){
		if(n[i]>0){
			cout<<i;
			n[i]--;
			break;
		}

	}
	for(int i=1;i<=3;i++){
		for(int j=1;j<=n[i];j++){
			cout<<"+"<<i;
		}
	}
    return 0;
}

#include<bits/stdc++.h>
using namespace std;
int main(){
    string st;
    cin>>st;
    for(int j=0;j<st.length();j=j+2){
         for(int i=j;i<st.length();i=i+2){
            if(st[j]>st[i]){
               char temp=st[j];
               st[j]=st[i];
               st[i]=temp;
            }
        }
    }
    cout<<st;
    return 0;
}

#include<cstdio>
#include<iostream>
using namespace std;
int main(){
    char str[101];
    scanf("%s",&str);
    int n=strlen(str);
    for(int i=0;i<n;i=i+2){
        for(int j=0;j<n-i-2;j=j+2){
            if(str[j]>str[j+2]){
                swap(str[j],str[j+2]);
            }
        }
    }
    printf("%s",str);
    return 0;
}

#include<iostream>
#include<string.h>

using namespace std;

int main()
{
    char ar[1000], temp;
    int n, i, j;
    cin >> ar;

    n = strlen(ar);

    if(n <= 100)
    {
        for(i = 0; i < n; i += 2)
        {
            for(j = 0; j < n - 1; j += 2)
            {
                if(ar[j] >= ar[j+2])
                {
                    temp = ar[j];
                    ar[j] = ar[j+2];
                    ar[j+2] = temp;
                }
            }
        }
    cout << ar;
    }

    return 0;
}

#include <bits/stdc++.h>
using namespace std;
int s[99],n;
int main() {
    char c;
    while((c=getchar())!=EOF)s[n++]=c-'0',getchar();
    sort(s,s+n);
    for(int i=0;i<n;) {
        printf("%d%c",s[i++],i<n-1?'+':'\n');
    }
}

#include <iostream>
#include <string>

using namespace std;

int main()
{
	string s;
	char c;
	int c1 = 0, c2 = 0, c3 = 0;

	cin >> s;

	for (int i = 0; i < s.size(); i++)
	{
		switch (s[i])
		{
		case '3':
			c3++;
			continue;
		case '2':
			c2++;
			continue;
		case '1':
			c1++;
			continue;
		}
	}

	s.clear();

	for (int i = 1; i <= c1; i++)
	{
		if ((c2 == 0) && (c3 == 0) && (c1 == i)) cout << '1';
		else cout << '1' << '+';
	}
	c1 = 0;
	for (int i = 1; i <= c2; i++)
	{
		if ((c1 == 0) && (c3 == 0) && (c2 == i)) cout << '2';
		else cout << '2' << '+';
	}
	for (int i = 1; i <= c3; i++)
	{
		if (i != c3) cout << '3' << '+';
		else cout << '3';
	}

	return 0;
}

#include <iostream>
#include <string>
using namespace std;
int main()
{
    int l,i,j;
    char s[100],t;
    scanf("%s",s);
    l=strlen(s);
    for(i=0;i<l;i+=2)
    {
        for(j=0;j<l-i-2;j+=2)
        {
            if(s[j]>s[j+2])
            {
                t=s[j+2];
                s[j+2]=s[j];
                s[j]=t;

            }
        }
    }
    printf("%s",s);
    return 0;
}

#include <bits/stdc++.h>

using namespace std;

void Bubble_sort(int arr[], int n)
{
    for(int i=0;i<n;i++)
    {
        int j=0;
        while(j<n-i-1)
        {
            if(arr[j]>arr[j+1])
                swap(arr[j],arr[j+1]);
                j++;
        }
    }
}

int main()
{
    string x;
	cin>>x;
	int a[100],z=0;
	int n=x.length();
	for(int i=0;i<n;i++)
	{
		if(x[i]!='+')
		{
				a[z]=x[i]-48;
				z++;
		}
	}

	Bubble_sort(a,z);
	for(int i=0;i<z-1;i++)
		cout<<a[i]<<'+';
	cout<<a[z-1];

    return 0;
}

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(){
  char c[120];
  int a[120],i,j,n,t;
   while(scanf("%s",c)!=EOF){
        n=strlen(c);
      if(n==1)
      printf("%s\n",c);
      else{
        for(i=0;i<n-1;i+=2)
           for(j=0;j<n-1-i;j+=2)
           if(c[j]>c[j+2]){
               t=c[j];
               c[j]=c[j+2];
               c[j+2]=t;
           }
       printf("%s\n",c);
}
   }
   return 0;
   }

#include <algorithm>
#include <iostream>
#include <cstdio>
using namespace std;
char nums[250];
int main() {
	int cnt = 0;
	char c;
	while (cin >> c)
		if (c != '+') nums[cnt++] = c;
	sort(nums, nums + cnt);
	for (int i = 0; i < cnt - 1; i++) cout << nums[i] << '+';
	cout << nums[cnt - 1];
	return 0;
}

#include <iostream>
#include <string>

using namespace std;

void main()

{ //Helpful Maths
string g;
cin >> g;
if (g.size() >= 3)
for (size_t i = 0; i < g.size() - 1; i++)
{
	++i;

	for (size_t j = 0; j < g.size() - i; j++)
	{
		if ((int)g.at(j)> (int)g.at(j + 2))

		{
			char r = g.at(j);
			g.at(j) = g.at(j + 2);
			g.at(j + 2) = r;
		}
		++j;
	}
}
 cout << g;

}

#include <iostream>
#include <string>
using namespace std;

int main()
{
	string s;
	bool M = true;
	int a = 0, b = 0, c = 0;
	cin >> s;
	for (int i = 0; s[i]; i++)
	{
		if (s[i] == '1')
			a++;
	}
	for (int i = 0; s[i]; i++)
	{
		if (s[i] == '2')
			b++;
	}
	for (int i = 0; s[i]; i++)
	{
		if (s[i] == '3')
			c++;
	}
	for (int i = 0; i < a; i++)
	{
		if (M)
		{
			cout << '1';
			M = false;
		}
		else
			cout << "+1";
	}
	for (int i = 0; i < b; i++)
	{
		if (M)
		{
			cout << '2';
			M = false;
		}
		else
			cout << "+2";
	}
	for (int i = 0; i < c; i++)
	{
		if (M)
		{
			cout << '3';
			M = false;
		}
		else
			cout << "+3";
	}
	return 0;

}

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int l,i,j;
    char s[100];
    scanf("%s",s);
    l=strlen(s);
    for(i=0;i<l;i+=2){
        for(j=0;j<l-i-2;j+=2){
            if(s[j]>s[j+2]){
                swap(s[j],s[j+2]);
            }
        }
    }
    printf("%s",s);
    return 0;
}

#include<map>
#include<cmath>
#include<stack>
#include<queue>
#include<cstdio>
#include<vector>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
int a[10005];
string s;
int main(){
    cin>>s;
    int n=s.size()/2+1;
    a[1]=s[0]-'0';
    for(int i=2;s[i];i+=2)a[i/2+1]=s[i]-'0';
    sort(a+1,a+1+n);
    printf("%d",a[1]);
    for(int i=2;i<=n;i++)printf("+%d",a[i]);
    puts("");
    return 0;
}

#include<iostream>

using namespace std;

int main(){
	string x;
	cin>>x;
	int y=x.size();

	for(int i=0 ; i<y ; i++)
	{
		if(x[i]=='3')
		for(int j=i+1 ; j<y ; j++)
		{
			if(x[j]=='2'||x[j]=='1')
			{
				int temp=x[i];
				x[i]=x[j];
				x[j]=temp;
			}
		}
		if(x[i]=='2')
		for(int j=i+1 ; j<y ; j++)
		{
			if(x[j]=='1')
			{
				int temp=x[i];
				x[i]=x[j];
				x[j]=temp;
			}
		}
	}

	cout<<x<<endl;

	return 0;
}

#include<stdio.h>
#include<math.h>
#include<string.h>
#include<ctype.h>
void main()
{
	 int i,j,k,s,s1,s2,s3,s4;
	 int m,n,z,t,max;
	 char a[1500],b[1500],ch;
	 scanf("%s",&a);
	 for(j=2;j<strlen(a);j+=2)
	 {
	 for(i=0;i<strlen(a)-2;i+=2)
	 {
		 if(a[i]>a[i+2])
		 {
			 ch=a[i];
			 a[i]=a[i+2];
			 a[i+2]=ch;
		 }
	 }
	 }
	  for(i=0;i<strlen(a);i++)
		  printf("%c",a[i]);
	  printf("\n");

}

// macros {{{
#include <bits/stdc++.h>

using namespace std;

#define ALL(x) (x).begin(), (x).end()
#define SZ(x) ((int)(x).size())
#define BIT(n) ((1LL) << (long long)(n))
#define FOR(i,c) for (auto i=(c).begin(); i != (c).end(); ++i)
#define REP(i,n) for (int i = 0; i < (int)(n); ++i)
#define REP1(i,a,b) for (int i=(int)(a); i <= (int)(b); ++i)
#define MP make_pair
#define PB push_back

#define Fst first
#define Snd second

#ifdef WIN32
#define LLD "%I64d"
#else
#define LLD "%lld"
#endif

typedef long long ll;
typedef unsigned int uint;
typedef unsigned long long ull;
typedef long double ld;

typedef pair<int, int> PII;
typedef vector<int> VI;

#define runtime() ((double)clock() / CLOCKS_PER_SEC)

const double eps = 1e-7;
// }}}

char str[105];

int main()
{
    scanf("%s", str);

    int n = strlen(str);

    vector<int> vec;
    for (int i = 0; i < n;)
    {
        // find next '+' or the end of string
        int j = i;
        while (j < n and str[j] != '+')
            ++j;

        int val;
        sscanf(str + i, "%d", &val);
        // val = atoi(str + i);

        vec.push_back(val);

        i = j + 1;
    }

    sort(vec.begin(), vec.end());

    for (int i = 0; i < (int)vec.size(); ++i)
    {
        if (i > 0) printf("+");
        printf("%d", vec[i]);
    }
    printf("\n");
}

///SACAR FREOPEN.
#include <iostream>
#include<vector>
#include<string>
#include<algorithm>
#include<cmath>
#include<set>
#include<list>
#include<cstdlib>
#include<cstdio>
#include<iomanip>
#include<stack>
#include<queue>
#include<stdio.h>
#include<string.h>
#include<map>
#include<sstream>

using namespace std;

#define all(c) (c).begin(),(c).end()
#define forn(i,n) for(int i=0;i<(int)n;i++)
#define dforn(i,n) for(int i=n-1;i>=0;i--)
#define formn(i,m,n) for(int i=m;i<(int)n;i++)
#define dformn(i,m,n) for(int i=n-1;i>=m;i--)
#define mp make_pair
#define pb push_back

const double PI=acos(-1.0);

typedef long long tint;
typedef pair<int,int> pint;

int main(){
//freopen(".in","r",stdin);
    string s; cin >> s;
    int n = s.size();
    vector<int> times(4,0);
    int greatest = 0;
    for(int pos = 0; pos < n; pos += 2){
        times[s[pos] - '0']++;
        greatest = max(greatest,s[pos] - '0');
    }
    for(int i = 1; i <= 3; i++){
        for(int j = 0; j < times[i]; j++){
            cout << i;
            if(!(i == greatest && j == times[i] - 1))
                cout << "+";
        }
    }
    return 0;
}

#include <bits/stdc++.h>

using namespace std;
int main() {

	/*int n,cnt = 0;
	string s1;
	string s2 = "two";
	cin >> n;
	while (n--)
	{
		cin >> s1;
		if (s1.length() == 5)
		{
			cout << 3 << endl;
		}
		else {
			for (int i = 0; i < s1.length(); i++)
			{

				if (s1[i] == s2[i]) { cnt++; }

			}
			if (cnt >= 2) { cout << 2 <<endl; }
				else {
					cout << 1 << endl;
				}

		}
	}*/
	//int ac = 0,bc = 0,cc = 0,dc = 0,ec = 0,fc = 0,gc = 0,hc = 0,ic = 0,jc = 0,kc = 0,lc = 0,mc = 0,nc = 0,oc = 0 ,pc = 0,qc = 0,rc = 0,sc = 0,tc = 0,uc = 0,vc = 0,wc = 0,xc = 0,yc = 0,zc = 0;
	//int arr[] = { ac,bc,cc,dc,ec,fc,gc,hc,ic,jc,kc,lc,mc,nc,oc,pc,qc,rc,sc,tc,uc,vc,wc,xc,yc,zc };
	//int sizo = sizeof(arr) / sizeof(arr[0]);
	//string m;
	//int n;
	//cin >> n;
	//while (n--) {
	//	cin >> m;
	//	ac = count(m.begin(), m.end(), 'a');
	//	bc = count(m.begin(), m.end(), 'b');
	//	cc = count(m.begin(), m.end(), 'c');
	//	dc = count(m.begin(), m.end(), 'd');
	//	ec = count(m.begin(), m.end(), 'e');
	//	fc = count(m.begin(), m.end(), 'f');
	//	hc = count(m.begin(), m.end(), 'h');
	//	ic = count(m.begin(), m.end(), 'i');
	//	jc = count(m.begin(), m.end(), 'j');
	//	kc = count(m.begin(), m.end(), 'k');
	//	lc = count(m.begin(), m.end(), 'l');
	//	mc = count(m.begin(), m.end(), 'm');
	//	nc = count(m.begin(), m.end(), 'n');
	//	oc = count(m.begin(), m.end(), 'o');
	//	pc = count(m.begin(), m.end(), 'p');
	//	qc = count(m.begin(), m.end(), 'q');
	//	rc = count(m.begin(), m.end(), 'r');
	//	sc = count(m.begin(), m.end(), 's');
	//	tc = count(m.begin(), m.end(), 't');
	//	uc = count(m.begin(), m.end(), 'u');
	//	vc = count(m.begin(), m.end(), 'v');
	//	wc = count(m.begin(), m.end(), 'w');
	//	xc = count(m.begin(), m.end(), 'x');
	//	yc = count(m.begin(), m.end(), 'y');
	//	zc = count(m.begin(), m.end(), 'z');
	//int maxi = *max_element(arr, arr + sizo);
	//if (maxi == ac) {
	//	cout << 'a';
	//}
	//
	//else if (maxi == bc) {
	//	cout << 'b';
	//}
	//else if (maxi == cc) {
	//	cout << 'c';
	//}
	//else if (maxi == dc) {
	//	cout << 'd';
	//}
	//else if (maxi == ec) {
	//	cout << 'e';
	//}
	//else if (maxi == fc) {
	//	cout << 'f';
	//}
	//else if (maxi == gc) {
	//	cout << 'g';
	//}
	//else if (maxi == hc) {
	//	cout << 'h';
	//}
	//else if (maxi == ic) {
	//	cout << 'i';
	//}
	//else if (maxi == jc) {
	//	cout << 'j';
	//}
	//else if (maxi == kc) {
	//	cout << 'k';
	//}
	//else if (maxi == lc) {
	//	cout << 'l';
	//}
	//else if (maxi == mc) {
	//	cout << 'm';
	//}
	//else if (maxi == nc) {
	//	cout << 'n';
	//}
	//else if (maxi == oc) {
	//	cout << 'p';
	//}
	//else if (maxi == qc) {
	//	cout << 'q';
	//}
	//else if (maxi == rc) {
	//	cout << 'r';
	//}
	//else if (maxi == sc) {
	//	cout << 's';
	//}
	//else if (maxi == tc) {
	//	cout << 't';
	//}
	//else if (maxi == uc) {
	//	cout << 'u';
	//}
	//else if (maxi == vc) {
	//	cout << 'v';
	//}
	//else if (maxi == wc) {
	//	cout << 'w';
	//}
	//else if (maxi == xc) {
	//	cout << 'x';
	//}
	//else if (maxi == yc) {
	//	cout << 'y';
	//}
	//else if (maxi == zc) {
	//	cout << 'z';
	//}
	//
	//}

	string s;
	cin >> s;
	int ic = 0, tc = 0, thc = 0;
	if (s.length() == 1)
	{
		cout << s;
		return 0;
	}
	if (s.length() == 3 && s[0] == '2' && s[2] == '2') {
		cout << "2+2";
		return 0;
	}
	if (s.length() == 3 && s[0] == '1' && s[2] == '1') {
		cout << "1+1";
		return 0;
	}if (s.length() == 3 && s[0] == '3' && s[2] == '3') {
		cout << "3+3";
		return 0;
	}
	if ((s.length() == 3 && s[0] == '2'&& s[2] != '2' && s[2] != '3') || (s.length() == 3 && s[2] == '2' && s[0] != '2' && s[0] != '3') ) {
		cout << "1+2";
		return 0;
	}
	if ((s.length() == 3 && s[0] == '3' && s[2] != '3' && s[2] != '2') || (s.length() == 3 && s[2] == '3' && s[0] != '3' && s[0] != '2')) {
		cout << "1+3";
		return 0;
	}
	if (s.length() == 3 && (s[0] == 1) || (s.length() == 3 && s[2] == '1')) {
		cout << "1+1";
		return 0;
	}
	else
	{
		for (int i = 0; i < s.length(); i++)
			if (s[i] == '1')
			{
				ic++;
			}
			else if (s[i] == '2') { tc++; }
			else if (s[i] == '3') { thc++; }
		while (ic--)
		{
			cout << "1+";
		}
		while (tc--)
		{
			cout << "2+";
		}
		while (thc--)
		{
			if (thc > 0) { cout << "3+"; }
			else { cout << "3"; }
		}

	}

	return 0;
}

/*
 * @name
 *
 * @brief
 *
 * @input
 *
 * @output
 *
 * @test1
 * 	input:
 * 	output:
 *
 * @test2
 * 	input:
 * 	output:
 */
#include<bits/stdc++.h>

using namespace std;

/*
 * @brief   Driver function
 */
int main(int argc, char *argv[])
{
	string in = "", out = "";
	vector<unsigned> o;
	int l = 0, nc = 0;

	cin >> in;
	l = in.length();
	if (l > 0 && l <= 100) {
		for (int i = 0; i < l; i++) {
			if (in[i] == '1' || in[i] == '2'  || in[i] == '3') {
				o.push_back(in[i] - '0'), nc++;
			}
		}
	}
	sort(o.begin(), o.end());
	for (int i = 0; i < nc - 1; i++)
		out += to_string(o[i]) + '+';
	out += to_string(o.back());
	cout << out << endl;

	return 0;
}

#include<cstdio>
int main() {
   char s[101];
   char arr[51] = {0};
   scanf("%s",s);
   int k = 0;
   for(int i = 0;s[i] != '\0';i++){
       if(s[i] != '+' && s[i] != '\0') {
            arr [k] = (char)s[i];
            k++;
       }
       else {
           continue;

       }
   }
   arr[k] = '\0';
   int temp = 0;
   for(int i= 0;i < k;i++) {
       for(int j = 0;j < k;j++) {
            if(arr[j] > arr[j+1]){
                temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
   }
   int i = 0;
   for(i = 1;i < k;i++) {
       printf("%c+",arr[i]);
   }
   printf("%c",arr[i]);
}

#include<bits/stdc++.h>

using namespace std;

char s[111];

int a[111];

int main(){

	cin>>s;

	int i,k=0;

	for(i=0;i<strlen(s);i+=2) a[k++]=s[i]-'0';

	sort(a,a+k);

	for(i=0;i<strlen(s);i++){

		if(i&1) cout<<'+';

		else cout<<a[i/2];

	}

	return 0;

}

//
//  main.cpp
//  A. Helpful Maths
//
//  Created by Alt3r on 3/18/15.
//  Copyright (c) 2015 Alt3r. All rights reserved.
//

#include <iostream>
#include <string>
#include <stdlib.h>
using namespace std;
int saveNumbers[10000];
int SortedResult[10000];
void sorting(int x)
{
    int count = 0;
    for (int i = 0 ; i < x; i++)
    {
        if (saveNumbers[i] == 1)
        {
            SortedResult[count] = 1;
            count ++;
        }
    }
    for (int i = 0 ; i < x ; i++)
    {
        if (saveNumbers[i] == 2)
        {
            SortedResult[count] = 2;
            count ++;
        }
    }
    for (int i = 0 ; i < x ; i++)
    {
        if (saveNumbers[i] == 3)
        {
            SortedResult[count] = 3;
            count ++;
        }

    }
}
int main()
{
    string  a;
    int numbersCount = 0;
    cin >>a ;

    for (int i = 0 ; i < a.length() ; i++)
    {
        if (a[i] != '+')
        {
            numbersCount++;
            string qq = &a[i];
//            saveNumbers[i] = atoi(qq.c_str());
            saveNumbers[i] = atoi(qq.c_str());
        }
    }
    sorting(a.length());
//    cout << numbersCount;
    for (int i = 0 ; i < numbersCount ; i++)
    {
        cout << SortedResult[i] ;
        if (i != numbersCount-1)
        {
            cout << "+";
        }
    }
    cout << endl;
    return 0;
}

#include<iostream>
#include<string>
using namespace std;
int main()
{
          string s;
          int j,key;
          cin>>s;
        int k=s.length();

        for( j=2;j<k;j+=2)
       { key=s[j];
       int i=j-2;
        while(s[i]>key && i>=0)
       { s[i+2]=s[i]; i=i-2;}
        s[i+2]=key;
}
cout<<s;
}

#include <iostream>
#include <cstring>
using namespace std;
int main()
{
    string str;
    cin>>str;
    int l=str.length();
    int co=0;

    char arr[(l/2)+1];
    for(char j='1';j<='3';j++)
    {
        for(int i=0;i<l;i++)
        {
            char ch=str.at(i);
            if(ch==j)
            {
            arr[co]=j;
            co++;
            }
        }
    }
    for(int i=0;i<l/2;i++)
    {
       cout<<arr[i]<<"+";
    }
    cout<<arr[l/2];
    return 0;

}

#include <iostream>
#include <algorithm>
#include <string>
#include <cmath>
#include <sstream>

using namespace std;
 void SORT(string s,int n)
{
    for(int i=0 ; i<s.size() ; i++)
   {
       for(int j=i+1 ; j<s.size() ; j++)
       {
            if(s[i]>s[j])
            {
                swap(s[i],s[j]);
            }
       }
   }
   for (int i=0 ; i< s.size()-1 ; i++ )
        cout << s[i] << "+";
   cout << s[s.size()-1];
}
int main ()
{
   string s;
   char a = '+';
   cin >> s;
   for(int i=0 ; i<s.size() ; i+=1)
   {
       s.erase(remove( s.begin() , s.end() , a ) , s.end());
   }
   int n=s.size();
   SORT(s,n);
    return 0;
}

#include <bits/stdc++.h>
using namespace std;
int main()
{string s;
cin>>s;
vector<int> vec;
vec.push_back(s[0]);
for (int i =1;i<s.length();i++)
     {if (i%2==0)
          vec.push_back(s[i]);
     }
sort(vec.begin(),vec.end());
int k =0;
for (int i=0; i<s.length(),k<vec.size();i++)
     {if (k==0)
         s[0]=vec[k++];

       else if(i%2==0)
        s[i]=vec[k++];
     }
for (int i =0; i<s.length(); i++)
    cout<<s[i];
}

#include<bits/stdc++.h>
using namespace std;
int main()
{
         char str[101];
         gets(str);
         int n,i,a=0;
         n=strlen(str);
         sort(str, str+n);
         a=n/2;
         for(i=a;i<n;i++)
         {
                  if(i==n-1)
                  {
                           cout<<str[i];
                  }
                  else
                  {
                           cout<<str[i]<<"+";
                  }
         }
         return 0;
}

#include <iostream>
#include <algorithm>
using namespace std;
int a[101];
int main(){
    int i =0;
    char c;
    while(cin >>c){
        if(c != '+'){
        	a[i] = (int)c-48;
        	i++;
        }
    }
    sort(a, a+i);
    i--;
    for(int j = 0;j < i;j++)
        cout << a[j]<<"+";
    cout << a[i];
}

#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int a[100000];
int main(){
	int i,j,k,n;
	int leng=0;
	string st;
	cin>>st;
	for(i=0;i<st.length();i++)
	if(st[i]>='0'&&st[i]<='9')a[++leng]=st[i]-48;
	sort(a+1,a+leng+1);
	for(i=1;i<leng;i++)cout<<a[i]<<"+";
	cout<<a[leng]<<endl;
	return 0;
}

#include <iostream>
#include <algorithm>
#include <string>
#include <map>

using namespace std;

main(){
    //freopen("aa.in","r",stdin);
    //freopen("aa.out","w",stdout);

    map<char,int> m;
    string k;
    int n,i;

    cin>>k;

    n=k.length();

    for(i=0;i<n;i+=2){
        m[k[i]]++;
    }
    if(m['1']>0) {cout<<"1";m['1']--;}
    else if(m['2']>0) {cout<<"2";m['2']--;}
    else if(m['3']>0) {cout<<"3";m['3']--;}
    for(i=0;i<m['1'];i++)
     cout<<"+1";
    for(i=0;i<m['2'];i++)
     cout<<"+2";
    for(i=0;i<m['3'];i++)
     cout<<"+3";
}

#include<iostream>
#include<cmath>
#include<algorithm>
#include<string>
using namespace std;
int a[100];
int b[100];
int main()
{
	string s;
	cin>>s;
	int x=s.size()/2;
	for(int i=0;i<s.size();i=i+2)
		a[i/2]=s[i];
	sort(a,a+(x+1));
	for(int i=0;i<s.size();i++)
	{
		b[i]=a[i];
	}
	cout<<b[0]-'0';
	for(int i=1;i<x+1;i++)
	{
		cout<<'+';
		cout<<b[i]-'0';
	}
	cout<<endl;
	return 0;
}

#include<cstdio>
#include<iostream>
#include<cstring>
#include<cmath>
#include<cstdlib>
#include<functional>
#include<algorithm>

using namespace std;

int main()
{
    string m;
    int a[1004];
    int i,j=0;
    int n;

    cin>>m;
    for(i=0;i<m.length();i+=2)
    {
        a[j++]=m[i] - '0';
    }
    n = (m.length()+1)/2;
    sort(a,a+ ((m.length()+1)/2) );
    for(i=0;i<n;i++)
    {
        if(i == n-1)
        {
            cout<<a[i];
        }
        else
        {
            cout<<a[i]<<"+";
        }
    }
    return 0;
}

#include <bits/stdc++.h>
using namespace std;
int main(){
	string a;
	cin>>a;
	int ans=0;
	int b[100010]={0};
	for(int i=0;i<a.length();i++){
		if(a[i]!='+'){
			ans++;
			b[ans]=a[i]-'0';
		}
	}
	sort(b+1,b+ans+1);
	for(int i=1;i<=ans-1;i++){
		cout<<b[i]<<"+";
	}
	cout<<b[ans];
	return 0;
}

#include <iostream >
#include <cctype>
#include <string>
using namespace std ;

void main ()

{
string a , c = " "  ;
cin >> a ;

int b = a.size () ;
int s1=0 , s2=0 , s3=0 ;

for (int i=0 ; i<b ; i+=2)
{
 if (a[i] == '1' )
 s1 +=1;
 else
 if (a[i] == '2' )
 s2 +=1;
 else
 if (a[i] == '3')
 s3 +=1 ;
}

for (int i=0 ; i<s1 ; i++)
c = c + "1 " ;

for (int i=0 ; i<s2 ; i++)
c = c + "2 " ;

for (int i=0 ; i<s3 ; i++)
c = c +"3 ";

int l = c.size () ;

for (int i=1; i<l-1 ; i++  )
{
if( c[i] == ' ')
c[i]= '+';

}
int g = c.size ();

for (int i=0 ; i<g-1 ; i++)
c[i] = c[i+1 ];

cout << c ;

}

#include <algorithm>
#include <iostream>
#include <iterator>
#include <cassert>
#include <sstream>
#include <fstream>
#include <cstdlib>
#include <cstring>
#include <utility>
#include <complex>
#include <string>
#include <cctype>
#include <cstdio>
#include <vector>
#include <bitset>
#include <stack>
#include <queue>
#include <cmath>
#include <deque>
#include <list>
#include <set>
#include <map>
#include <unordered_map>

#define 	ll long long
#define 	lld long long int
#define 	sc scanf
#define 	pi 2*acos(0.0)
#define 	f first
#define 	s second
#define 	sz size()
#define 	mp make_pair
#define 	r(input) freopen("a.in","r",stdin)
#define 	w(output) freopen("a.out","w",stdout)
#define 	maxall(v) *max_element(v.begin(),v.end())
#define 	minall(v) *min_element(v.begin(),v.end())
#define 	Sort(v) sort(v.begin(),v.end())
#define 	clr(a)  memset(a,0,sizeof(a))
#define 	pb push_back
#define 	inf 1000000000
#define 	mod 1000000009
using namespace std;
unordered_map<int,int> unmap;
int main(){
	string cade;
	getline(cin,cade);
	vector<int> vec;
	int s=0;
	for(int i=0;i<cade.size();i++){
		if(cade[i]=='+')continue;
		else{
			vec.pb(cade[i]-'0');
		}
	}
	sort(vec.begin(),vec.end());
	printf("%d",vec[0] );
	for (int i = 1; i < vec.size(); ++i)
	{
		printf("+%d",vec[i] );
	}
	printf("\n");
}

#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
vector<int>a;
int main()
{
	string s;
	cin >> s;
	//int *a;
	//a = new int[s.size()];
	for (int i = 0; i <(int)s.size(); i++){
		if (s[i] == '1')
			a.push_back(1);
		if (s[i] == '2')
			a.push_back(2);
		if (s[i] == '3')
			a.push_back(3);
	}
	sort(a.begin(), a.end());
	for (int i = 0; i < (int)a.size(); i++){
		cout << a[i];
		if (i !=(int)a.size() - 1)
			cout << "+";
	}
}

#include <iostream>
#include <string>
using namespace std;
int main ()
{  int count=0;
bool x=false;
    string s,c;
    do{cin>>s;}while(s.length()>100);

    while (x==false)
    {
        x=true;
    for (int i=2;i<s.length();i++)
    {
        if (int(s[i])<int(s[i-2]))
        {
            char T=s[i];
            s[i]=s[i-2];
            s[i-2]=T;
            x=false;
        }
    }
    }
for (int i=0;i<s.length();i++)
    cout<<s[i];

return 0;
}

#include<bits/stdc++.h>
using namespace std;
char ch;
vector<int>a;
int main()
{
    while(cin>>ch)
    {
        if(isdigit(ch))
        a.push_back(ch-'0');
    }
    sort(a.begin(),a.end());
    printf("%d",a.front());
    a.erase(a.begin());
    for(auto iter : a)
    {
        printf("+%d",iter);
    }
    return 0;
}

#include<iostream>
#include<string>
using namespace std;
void main(){
string s;
cin>>s;
for (int x=2; x<s.length();x+=2){

			if (int(s[x])<int(s[x-2])){ for(int j=x;j>0;j=j-2){

			if (s[j]<s[j-2]){
				char y=s[j];
				s[j]=s[j-2];s[j-2]=y;
			}
			}}

}
cout<<s;
}

#include <iostream>
#include <algorithm>
#include <string>
#include <vector>

using std::cout;
using std::cin;
using std::string;
using std::vector;

int main() {
    string s;
    cin >> s;
    vector<int> v;
    for (auto c : s) {
        if (isdigit(c))
            v.push_back((int) c - (int) '0');
    }
    std::sort(v.begin(), v.end());
    string out = "";
    for (auto d : v) {
        out += ((char) d + '0');
        out += '+';
    }
    cout << out.substr(0, out.length() - 1);
}

#include<iostream>
using namespace std;
int main()
{
    string str1,str2;
    cin>>str1;
    int i,j,len,item;
    len=str1.length();
    for(i=0; i<len; i=i+2)
    {
        for(j=0; j<len; j=j+2)
        {
            if(str1[j]>str1[j+2])
            {
                item=str1[j];
                str1[j]=str1[j+2];
                str1[j+2]=item;
            }
        }
    }
    for(i=0; i<len; i++)
    {
        cout<<str1[i];
    }
}

#include<bits/stdc++.h>
using namespace std;

int main()
{
    string s;
    cin>>s;
    int a=0,b=0,c=0;
    for(int i=0;i<s.size();i++)
    {
        if(s[i]=='1')
        a++;
        else if(s[i]=='2')
        b++;
        else if(s[i]=='3')
        c++;
    }
    if(a>0)
    cout<<'1';
    for(int i=0;i<a-1;i++)
    cout<<"+1";
    if(b>0)
    cout<<'2';
    for(int i=0;i<b;i++)
    cout<<"+2";
    if(c>0)
    cout<<'3';
    for(int i=0;i<c;i++)
    cout<<"+3";
    return 0;
}

#include<iostream>
#include<string>

using namespace std;

int main()
{
    string a;
    cin >> a;
    int d;
    for(int tmp=0;tmp<=a.length();tmp++)
       {
              if(a[tmp] == '+'){
                 d++;

        }

      }

       for(int tmp=0;tmp<=a.length();tmp++)
       {
              if(a[tmp] == '1'){
                  cout << "1";
             if(d>1){
                      cout << "+";
                      d--;
            }
              }

      }

      for(int tmp=0;tmp<=a.length();tmp++)
       {
              if(a[tmp] == '2'){
                  cout << "2" ;
                    if(d>1){
                      cout << "+";
                      d--;
            }
}
 }

      for(int tmp=0;tmp<=a.length();tmp++)
       {
              if(a[tmp] == '3'){
                  cout << "3";
            if(d>1){
                      cout << "+";
                      d--;
    }

              }
              }

 }

#include <iostream>
#include <string.h>
using namespace std;

int main() {
    string s;
    cin >> s;
    char arr[] = {};
    int j = 0;
    if (s.length() == 1) {
        cout << s;
    }
    else {
        for(int i = 0; i < s.length(); i++) {
            if (s[i] == '1' || s[i] == '2' || s[i] == '3') {
                arr[j] = s[i];
                j++;
            }
        }

        char temp;
        for (int i = 0; i < j-1; i++) {
            for (int k = 0; k < j-1-i; k++) {

                if (arr[k] > arr[k+1]) {
                    temp = arr[k] ;
                    arr[k] = arr[k+1];
                    arr[k+1] = temp;
                }
            }
        }
        string str(arr);
        int a;
        cout << str[0];
        for (a = 1; a <= j; a++) {
            if (a == j) {
                break;
            }
            cout << '+' << str[a];
        }
        cout << "\n";

    }

    return 0;
}

#include<iostream>
#include<string>
using namespace std;
int main() {

	string a;
	cin >> a;
	for (int i = 0; i < a.length(); i = i + 2) {
		for (int j = 0; j < a.length() - 1; j = j + 2) {
			if (a.at(j) > a.at(j + 2))
			{
				int n = a.at(j + 2);
				a.at(j) = a.at(j + 2);
				a.at(j + 2) = n;
			}
		}
	}
	int y = (a.length() - 1) / 2;
	for (int b = 0; b < y ; b++) {
		cout << a.at(b) << "+";
	}

	return 0;
}

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <cstdio>
#include <set>
#include <iterator>
using namespace std;

int main()
{
	string s;
	set<char> ss;

	cin >> s;

	for (int i = 0; i < s.length(); i++)
	{

		if (s[i] == '+')
			continue;
		else
		{
			ss.insert(s[i]);
		}
	}
	set<char>::iterator itr = ss.begin();

	for (int i = 0; i < ss.size()-1; i++)
	{
		cout << *itr << "+";
		itr++;
	}

	cout << *itr;
	return 0;
}

#include <iostream>
#include <vector>
#include <algorithm>
#include <string>

using namespace std;

int main(){

	string s;
	vector<int> v;

	cin >> s;

	for(int i = 0; i < s.length(); i++){

		if(isdigit(s[i])){
			v.push_back(s[i]);
		}
	}

	sort(v.begin(), v.end());

	cout << v[0];
	for(int i = 1; i < v.size(); i++){
		cout << "+" << v[i]-48;
	}

	cout << endl;

	return 0;
}

#include<bits/stdc++.h>
#include<iostream>
#include<string.h>
#include<vector>
#define lli long long int
using namespace std;
int main()
{
lli k,c1{0},c2{0},c3{0};
string str,rel1="",op="",lastOne1="",rel2="",rel3="",lastOne2="",lastOne3="";
cin>>str;

if(str.length()==1)
{
  cout<<str<<endl;
}

else{

for(lli i=0;i<str.length();i++)
{
  if(str[i]=='1')
  {
    c1++;
  }
  else if(str[i]=='2')
  {
    c2++;
  }
  else if(str[i]=='3')
  {
    c3++;
  }
}

for(lli i=0;i<c1;i++)
{
  rel1=rel1+'1';
  op="+";
  rel1=rel1+op;
}
for(lli j=0;j<c2;j++)
{
  rel2=rel2+'2';
  op="+";
  rel2=rel2+op;
}
for(lli k=0;k<c3;k++)
{
  rel3=rel3+'3';
  op="+";
  rel3=rel3+op;
}
for(lli l=0;l<rel1.length();l++)
{
  lastOne1=rel1.substr(0,rel1.length()-1);
}
for(lli l=0;l<rel2.length();l++)
{
  lastOne2=rel2.substr(0,rel2.length()-1);
}
for(lli l=0;l<rel3.length();l++)
{
  lastOne3=rel3.substr(0,rel3.length()-1);
}
cout<<lastOne1+'+'+lastOne2+'+'+lastOne3<<endl;
  return 0;
}
}

#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

int main()
{
	string a;
	cin >> a;
		for(int i = 0; i <= a.size(); i++)
			for(int j = 0; j < a.size(); j += 2)
				if (a[j] > a[j + 2])
					swap(a[j], a[j + 2]);
	cout << a << '\n';
	{char _; cin >> _;}
	return 0;
}

 #include<iostream>
#include<string>
#include<algorithm>
#include<vector>
using namespace std;
int main()
{
    string a;
    cin >> a;
    vector<int> b;
    int i;
    int l=a.length();
    for(i=0;i<l;i++)
    {
        if(a.substr(i,i+1)=="+")
        continue;
        else
        b.push_back(int(a.at(i)));
    }
    sort(b.begin(),b.end());
    l=b.size();
    for(i=0;i<l-1;i++)
    cout << b.at(i) << "+";
    cout << b.at(i);
}

#include <iostream>
#include <cstring>
using namespace std;
int main()
{
    string str;
    cin>>str;
    int l=str.length();
    int co=0;

    char arr[(l/2)+1];
    for(char j='1';j<='3';j++)
    {
        for(int i=0;i<l;i++)
        {
            char ch=str.at(i);
            if(ch==j)
            arr[co]=j;
            co++;
        }
    }
    for(int i=0;i<l/2;i++)
    {
       cout<<arr[i]<<"+";
    }
    cout<<arr[l/2];
    return 0;

}

#include<iostream>
#include<string.h>
using namespace std;
int main()
{
	char str[105];
	cin>>str;
	int a[100], temp, n=0;
	for(int i=0, j=0;i<strlen(str);i+=2,j++)
	{	a[j]=str[i]-48;
		n++;
	}
	for(int i=0;i<n;i++)
	{
	    for(int j=0;j<n;j++)
	   {
	       if(a[i]>a[j])
	       {
	           temp=a[i];
	           a[i]=a[j];
	           a[j]=temp;
	       }
	   }
	}
	for(int i=0;i<n;i++)
	{
	    cout<<a[i];
	    if(i!=n-1)
	        cout<<"+";
	}
	return 0;
}

#include <cstdio>
#include <bits/stdc++.h>
#include <iostream>
#include <stdlib.h>

using namespace std;
int main(){
    string st = "" ;
    int n = 0;
    cin >> st;
    int arr[n],ind = 0;
    n = st.length();
    cout << n ;
    for(int i = 0 ; i < n ; i++){
        if (st[i] != '+'){
            arr[ind] = st[i];
            ind++;
        }
    }
    sort(arr, arr + n);
    int length = sizeof(arr) / sizeof(int);
    cout << length ;
    for (int i = 0 ; i < length; i++ ){
        if (i == length + 1 ){
            cout << arr[i] ;
        }
        else{
            cout << arr[i] << '+' ;
        }
    }
    return 0;
}

#include<bits/stdc++.h>
using namespace std;
int main()
{
        int j=0;
        char a[100],b[100];
        cin>>a;
        for(int i=0;i<100;i=i+2)
        {
               for(int j=0;j<100;j=j+2)
               {
                    if(a[i]>a[j])
                    swap(a[i],a[j]);
               }

        }
   cout<<a;

}

#include<bits/stdc++.h>
#include<string.h>
using namespace std;
int main(){
string s;
               string k;
               cin>>s;

               vector<int> f;
               int q=0;
               for(int i=0;i<s.size();i+=2){

                              f.push_back(s[i]-'0');
                              q++;

               }
               sort(f.begin(),f.end());
               if(f.size()==1){
                              cout<<f[0];
               }
             else{
               for(int g=0;g<f.size();g++){
                              if(g==f.size()-1){
                              cout<<f[g];
               }
                          cout<<f[g]<<"+";
               }
             }
               cout<<endl;
               return 0;

}

#include <iostream>
#include <string.h>
#include <stdio.h>
#include <string>
#include <math.h>
using namespace std;

int main(){
	int i;
	int num_1s = 0;
	int num_2s = 0;
	int num_3s = 0;

	string sum;
	cin>>sum;
	string new_sum = "";
    for(i = 0; i <= sum.size(); i++){
    	if(sum[i] == '1'){
    		num_1s++;
    	}
    	if(sum[i] == '2'){
    		num_2s++;
    	}
    	if(sum[i] == '3'){
    		num_3s++;
    	}
    }

 	if(num_1s > 0){
 		  	new_sum = '1';
 	}

	for(i = 1; i < num_1s; i++){
		new_sum += "+1";
	}
	for(i = 0; i < num_2s; i++){
		new_sum += "+2";
	}
	for(i = 0; i < num_3s; i++){
		new_sum += "+3";
	}
	cout<<new_sum;
	return 0;
}

///*******Bismillahir Rahmanir Rahim*******
///____________Md Nazmul Hasan_____________
///''''''''''Department of ICE''''''''''''''''''''
///-------Noakhali Science and Technology University-------

#include<bits/stdc++.h>
#include<string>
#include<algorithm>

#include<math.h>
using namespace std;
#define ll long long int

int main()
{
    ll t,a=0,b=0,c=0,d=0,l,n;

    string s;
    cin>>s;

    for(int i=0; i<s.size(); i++)
    {
        if(s[i]=='1')
        {
            a++;
        }
         if(s[i]=='2')
        {
             b++;
        }
       if(s[i]=='3')
        {
            c++;
        }

    }
    l=a+b+c;
    for(int i=1;i<=l;i++)
    {
        if(i<=(l-(b+c)))
        {
             cout<<"1+";
        }
        else if(i<=(l-c))
        {
            cout<<"2+";
        }
        else
        {
            if(i==l)
            {
                cout<<3<<endl;
                break;
            }
            cout<<"3+";
        }

    }

    return 0;
}

///________ Alhamdulillah ________

#include <iostream>
#include <string>
#include <string.h>
#include<cstdlib>
#include <ctype.h>
#include <algorithm>
#include <stdio.h>
#include <stdlib.h>
using namespace std;

int main()
{
	long long s = 0, d = 0,i,j;
	string    nam, ch;
	long long arr[10000000];

	getline(cin, nam);

	for (i = 0; i < nam.size();i++)
	{
		if (nam[i] != '+')
		{
			arr[s] =  (nam[i] - '0');
			s++;
		}
		else
		{
			ch[d] = nam[i];
			d++;
		}
	}
	sort(arr, arr + s);
	// for(int i=0;i<s;i++)
	//   cout<<arr[i]<<" ";

		for ( j = 0; j < s; j++)
		{
			if (j + 1 != s)
				cout << arr[j] << '+';
			else
				cout << arr[j];
		}

	cout << endl;

	return 0;
}

#include<iostream>
#include<string>
#include<algorithm>
#include<array>
#include<vector>
using namespace std;

int main() {

	vector<char> z;

	string p;
	cin >> p;
	int a = p.length();

	for (int i = 0 ; i < a ; i=i+2) {
		z.push_back(p.at(i));

	}

	sort(z.begin() , z.end());

	for (int i = 0; i < z.size(); i++) {
		cout << z[i] << "+";
	}

	return 0;
}

#include<iostream>
#include<string.h>
using namespace std;
int main ()
{
    char str[50], temp;
    int i, j;
    cout << "Enter a string : ";
    gets(str);
    j = strlen(str) - 1;
    for (i = 0; i < j; i++,j--)
    {
        temp = str[i];
        str[i] = str[j];
        str[j] = temp;
    }
    cout << "Reverse string : " << str;
    return 0;
}

#include <iostream>
#include <string>
using namespace std;
string s;
int s1,s2,s3;
int main()
{
    cin>>s;
    for (int i=0;i<s.length();i++)
    {
        if (s[i]=='1')
            s1++;
        else if (s[i]=='2')
            s2++;
        else if (s[i]=='3')
            s3++;
    }
    while (s1>0)
        {
            cout<<1;
            if (s1>0&&s2!=0)
                cout<<'+';
            s1--;
        }
         while (s2>0)
        {
            cout<<2;
            if (s2>0&&s3!=0)
                cout<<'+';
            s2--;
        }
         while (s3>0)
        {
            cout<<3;
            if (s3>1)
                cout<<'+';
            s3--;
        }
        cout<<endl;
        return 0;
}

#include<iostream>
#include<cstring>
#include<cctype>
using namespace std;

int main()
{
    char x[1000],temp;
    cin>>x;
    int n=strlen(x);
    if(n==1)
    {
        cout<<x;
    }
    else
    {
        for(int i=0;i<n;i+=2)
        {
            for(int j=2;j<n;j+=2)
            {
                temp=x[i];
                x[i]=x[j];
                x[j]=temp;
            }
        }
        cout<<x;
    }
    return 0;
}

// Codeforces_Helpful_Maths.cpp : This file contains the 'main' function. Program execution begins and ends there.
//

#include <iostream>
#include <string>
using namespace std;
string getNums(string str, int length);
void bubbleSort(string &str, int length);
bool isSorted(string str);
int main()
{
    string str;
    string* strptr = &str;
    getline(cin, str);
    str = getNums(str, str.length());
    cout << isSorted("132") << endl;
    cout << isSorted("123") << endl;
    while (!isSorted(str))
    {
        bubbleSort(str, str.length());
    }

    for (int i = 0; i < str.length(); i++)
    {
        if (i == 0)
        {
            cout << str[i];
        }
        else
            cout << "+" << str[i];
    }
    return 0;
}

bool isSorted(string str)
{
    for (int i = 0, n = str.length(); i < n - 1; i++)
    {
        if (str[i] > str[i+1])
            return false;
    }
    return true;
}

string getNums(string str, int length)
{
    string nums = "";
    int j = 0;
    for (int i = 0; i < length; i++)
    {
        if ( str[i] >= 49 && str[i] <= 51)
        {
            nums += str.substr(i, 1);
        }
    }
    return nums;
}

void bubbleSort(string &str, int length)
{
    for (int i = 0; i < length - 1; i++)
    {
        if (str[i] > str[i + 1])
        {
            char temp = str[i + 1];
            str[i + 1] = str[i];
            str[i] = temp;
        }
    }
}
// Run program: Ctrl + F5 or Debug > Start Without Debugging menu
// Debug program: F5 or Debug > Start Debugging menu

// Tips for Getting Started:
//   1. Use the Solution Explorer window to add/manage files
//   2. Use the Team Explorer window to connect to source control
//   3. Use the Output window to see build output and other messages
//   4. Use the Error List window to view errors
//   5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
//   6. In the future, to open this project again, go to File > Open > Project and select the .sln file

#include<iostream>
using namespace std;
#include<string>
#include<cstring>
#include<algorithm>
#include<cstdlib>
int main()
{
    string s;
    cin>>s;
   if(s.length()==1)
cout<<s;
else
    {
    for(int i=0;i<s.size();i++)
    {
     for(int j=0;j<s.size()/2+1;j++)
    {
     if(s.at(j)>s.at(j+2))
    {
    swap(s.at(j),s.at(j+2));
    }
    }
    }

    }

    cout<<s;
    return 0;
}

            #include<iostream>
            #include<bits/stdc++.h>
            using namespace std;
            int partitioning(int arr[],int start,int end){
                int pivot=arr[end];
                int index=start;
                for(int i=0;i<end;i++){
                    if(arr[i]<=pivot){
                        int temp=arr[i];
                        arr[i]=arr[index];
                        arr[index]=temp;
                        index=index+1;
                    }
                }
                int temp1=pivot;
                pivot=arr[index];
                arr[index]=temp1;
                return index;
            }
            void quicksort(int arr[],int start,int end){
                if(start<end){
                    int i=partitioning(arr,start,end);
                    quicksort(arr,start,i-1);
                    quicksort(arr,i+1,end);
                }
            }
            int main(){
                string s;
                cin>>s;
                int arr[100];
                int n=0;
                for(int i=0;i<s.length();i++){
                    if(s[i]!='+'){
                        arr[n]=(s[i-'0']);
                        n++;
                    }
                }

                quicksort(arr,0,n-1);
                for(int i=0;i<n-1;i++){
                    cout<<arr[i]<<"+";
                }
                cout<<arr[n-1];
                return 0;
            }

#include<bits/stdc++.h>
using namespace std;
int main()
{
         string str;
         string str1;
         cin>>str;
         int i,n=0;
         n=sizeof(str);
         for(i=1;i<=n;i=i+2)
         {
                  str1[i-1]=str[i];
         }

         cout<<str1<<"\n"<<n;
         return 0;

}

#include <iostream>
#include <stdio.h>
using namespace std;

int main() {
	int x,n[100],i=0,temp=0;
	char c;
	while (scanf("%c",&c)!=EOF){
		if(c!='+') {n[i]=c-48;i++; }

}

for(int z=0; z<i; z++){
	for(int y=z; y<i; y++){
		if(n[z] > n[y])
{ temp =n[z]; n[z]=n[y]; n[y]=temp; }
}
}
 for(int a=0; a<i; a++){
  printf("%d",n[a]);
  if(a+1<i){printf("+");}
}
	return 0;
}

#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
string x,c,m;
int y[1001];
int n,i,k,l,sumdig;
main(){
	i=0;
	k=0;

cin>>x;
n=x.size();
while(n>0){
	if(i%2==0){

    	y[k]=x[i];
    	n--;
 	  k++;
 	 i++;
	}
	else
	{
	   i++; n--;
	}
}
sort(y,y+k);
reverse(y,y+k);

while(k-1>0){
 if(k-1==n)
 {
   c=y[k-1];k--;}
	else {c=c+"+";
	m=y[k-1];
	 c=c+m;
	 k--;
	}

}
cout<<c;
 }

#include <iostream>

using namespace std;

int main()
{
    char a[101];
    int f1=0,f2=0,f3=0;
    cin>>a;

    for(int i=0 ; i<101 ; i++)
    {
        switch (a[i])
        {
            case '1':
                f1++;
                break;
            case '2':
                f2++;
                break;
            case '3':
                f3++;
                break;
        }
    }

    for(int i=0 ; i<f1 ; i++)
        cout<<"1"<<"+";
    for(int i=0 ; i<f2 ; i++)
        cout<<"2"<<"+";
    for(int i=0 ; i<f3 ; i++)
        cout<<"3"<<"+";

        cout<<'\b';
        cout<<" ";

    return 0;
}

#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
    string s;
    int i,l,j;
    cin>>s;
    l=sizeof(s);
    for(i=0;i<l-1;i++)
    {
        for(j=0;j<l;j=j+2)
        {
           if(s[j]>s[j+2])
           {
            swap(s[j],s[j+2]);
           }
        }
    }
    cout<<s;
   return 0;

}

#include <iostream>
#include <stdlib.h>
#include <cmath>
#include <string>

using namespace std;

void sort(int b[], int l, int r)
{
    int y;
    for (int i=l;i<r-1;i++)
    for (int j=i+1;j<r;j++)
     if (b[i]>b[j])
    {
        y=b[i];b[i]=b[j];b[j]=y;
    }
}

int main() {
    string s,d;
    int n,a[1000];
    cin >> s;
    int i=0,dem=0;
    while (i<s.length()) {if (s[i]!='+') {n=s[i]-'0';a[dem]=n;dem++;} i++; }
    sort(a,0,s.length()-1);
    for (int i=0;i<dem;i++) {cout << a[i];if (i!=dem-1) cout << "+";}
}

#include<iostream>
#include<string.h>
using namespace std;
string a;
int index[101];
int main()
{
    cin>>a;
    for(int i = 0; i < a.size(); i=i+2)
    {
        index[a[i]-'0']++;
    }
    if(index[1]>0)
    {
        for(int i = 0; i <index[1];i++)
        {
            cout<<1;
            if(i<index[1]-1)
            {
                cout<<"+";
            }
        }
    }
    if(index[2]>0 && index[1]>0)
    {
        cout<<"+";
    }
    if(index[2]>0)
    {
        for(int i = 0; i <index[2];i++)
        {
            cout<<2;
            if(i<index[2]-1)
            {
                cout<<"+";
            }

        }
    }
    if(index[3]>0 && index[2]>0 && index[1]>0)
    {
        cout<<"+";
    }
    if(index[3]>0)
    {
        for(int i = 0; i<index[3];i++)
        {
            cout<<3;
            if(i<index[3]-1)
            {
                cout<<"+";
            }
        }
    }
}

#include<bits/stdc++.h>
using namespace std;

int main()
{
    string s;

    cin>>s;
    string temp;

    for(int i=0;s[i]!='\0';i=i+2)
    {
        for(int j=i+2;s[j]!='\0';j=j+2)
        {
            if(s[j]<s[i])
            {
                 temp=s[i];
                s[i]=s[j];
                s[j]=temp[0];
            }
        }
    }

    cout<<s;
}

#include <cstdio>
#include <bits/stdc++.h>
#include <iostream>
#include <stdlib.h>

using namespace std;
int main(){
    string st = "" ;
    int n = 0;
    cin >> st;
    int arr[n],ind = 0;
    n = st.length();
    for(int i = 0 ; i < n ; i++){
        if (st[i] != '+'){
            arr[ind] = st[i];
            ind++;
        }
    }
    sort(arr, arr + n);
    int length = sizeof(arr) / sizeof(int);
    for (int i = 0 ; i < length; i++ ){
        if (i == length + 1 ){
            cout << arr[i] ;
        }
        else{
            cout << arr[i] << '+' ;
        }
    }
    return 0;
}

#include<bits/stdc++.h>
#include<string.h>
using namespace std;
int main(){
string s;
               string k;
               cin>>s;

               vector<int> f;
               int q=0;
               for(int i=0;i<s.size();i+=2){

                              f.push_back(s[i]-'0');
                              q++;

               }
               sort(f.begin(),f.end());
               if(f.size()==1){
                              cout<<f[0];
               }
             else{
               for(int g=0;g<f.size();g++){
                              if(g==f.size()-1){
                              cout<<f[g];
               }
                          cout<<f[g]<<"+";
               }
             }
               cout<<endl;
               return 0;

}

#include <iostream>
#include <string>
using namespace std;
char a[100];
int one,two,three,i;
int main()
{
	cin.getline(a,100);
	for(i=0;i<strlen(a);i+=2)
	{
		switch(a[i])
		{
		case '1':
			one++;
			break;
		case '2':
			two++;
			break;
		case '3':
			three++;
		}
	}
	if(one)
		cout<<"1";
	for(i=1;i<one;i++)
		cout<<"+1";
	if(one&&two)
		cout<<"+";
	if(two)
		cout<<"2";
	for(i=1;i<two;i++)
		cout<<"+2";
	if(two&&three)
		cout<<"+";
	if(three)
		cout<<"3";
	for(i=1;i<three;i++)
		cout<<"+3";
	return 0;
}

#include <iostream>
#include <string>
using namespace std;
int main()
{
	string w1;
	getline (cin,w1);
	for (int i = 0; i < w1.length() - 1; )
		if (w1[i] == '+')
			i++;
		else if (w1[i] > w1[i + 2])
		{
			swap(w1[i], w1[i + 2]);
			i++;
		}
		else
			i++;
	for (int j = 0; j < w1.length()-1; )
		if (w1[j] == '+')
			j++;
		else if (w1[j] > w1[j + 2])
		{
			swap(w1[j], w1[j + 2]);
			j++;
		}
		else
			j++;

for (int j = 0; j < w1.length()-1; )
		if (w1[j] == '+')
			j++;
		else if (w1[j] > w1[j + 2])
		{
			swap(w1[j], w1[j + 2]);
			j++;
		}
		else
			j++;

for (int j = 0; j < w1.length()-1; )
		if (w1[j] == '+')
			j++;
		else if (w1[j] > w1[j + 2])
		{
			swap(w1[j], w1[j + 2]);
			j++;
		}
		else
			j++;

	cout << w1 << endl;

}

#include <iostream>

using namespace std;

int main()
{
    string S;
    long i = 0, one = 0, two = 0, three = 0;
    cin >> S;
    if ( S.length() == 1 )
        cout << S;
        else {
          while ( i < S.length() )
          {
              if ( S[i] == '1' )
                  one++ ;
              if ( S[i] == '2' )
                  two ++ ;
              if ( S[i] == '3' )
                  three ++ ;
             i = i + 2;
          }
          if ( one != 0 ){
           for ( i = 0; i < one - 1; i++ )
               cout << "1+";
            cout << "1";}
          if ( two != 0 )
           for ( i = 0; i < two ; i++ )
               cout << "+2";
           for ( i = 0; i < three ; i++ )
               cout << "+3";

        }
    return 0;
}

#include <iostream>
#include <string>
using namespace std;

int main()
{
    string s;
    cin>>s;
    int a[100];
    int n=0;
    for(int i=0;i<s.length();i++)
    {
        if(s[i]!='+')
        {
            int temp=s[i];
            a[n]=temp-48;
            n++;
        }
    }
    for(int i=0;i<n-1;i++)
    {
        for(int j=i;j<n;j++)
        {
            if(a[j]>a[j+1])
            {
                int hold=a[j+1];
                a[j+1]=a[j];
                a[j]=hold;
            }
        }
    }
    cout<<n<<endl;
    for(int i=0;i<n-1;i++)
    {
        cout<<to_string(a[i])+"+";
    }
    cout<<a[n-1];
}

#include <iostream>
//#include <cstring>
#include <stdio.h>
#include <string.h>
using namespace std;
int main()
{
	string s;
	int c1,c2,c3,i;
	c1=c2=c3=i=0;
	getline(cin,s);
	for(i=0;i<s.size();i+=2)
	{
		if(s[i]=='1')
			c1++;
		else if(s[i]=='2')
			c2++;
		else if(s[i]=='3')
			c3++;
	}

	for(i=0;i<c1;i++)
		printf("1+");

	for(i=0;i<c2;i++)
		printf("2+");

	for(i=0;i<c3;i++)
		printf("3+");

	printf("\b\b\b\b\b    ");

	return 0;
}

#include<stdio.h>
#include<string.h>
int main(void)
{
    char str[110];
    scanf("%s",str);
    int n=strlen(str);
    for(int i=0;i<n-2;i+=2)
    {
        if((str[i]=='3'&&str[i+2]=='2')||(str[i]=='2' && str[i+2]=='1') ||(str[i]=='3' && str[i+2]=='1'))
        {
            char ch = str[i];
            str[i]=str[i+2];
            str[i+2]=ch;
        }
    }
    printf("%s",str);
    return 0;
}

#include <iostream>
#include <string>

using namespace std;

int main()
{long size = 100, A[size];
    string s, s1;
    long x, y;
    cin >> s;
    size = ((s.length()-1)/2)+1;
    for(int i = 0; i < size; i = i+2)
        A[i] = int(s.at(i));

    for (int k = 0; k < size; k++)
        for (int i = 0; i < size; i++)
            if (A[i] > A[i +1])
                swap(A[i], A[i + 1]);

    for(int k = 0; k < size -1; k++)
    {  x = A[k];
        s1 = char(x);
        s1 += '+';}
    y = A[size-1];
    s1 += char(y);
    cout << s1;

    return 0;

}

#include<iostream>
#include<string>
using namespace std;
void main() {
	string a;
		char hold;
		cin >> a;
		int len = a.length();
		for (int i = 0; i < len-2; i+=2)
		{
			if (a.at(i) > a.at(i + 2))
			{
				hold = a.at(i);
				a.at(i) = a.at(i + 2);
					a.at(i + 2)=hold;
			}
		}
		cout << a << endl;

}

#include<iostream>
#include<algorithm>
using namespace std;
int i,s,x[102],n,q,h;
int main(){
cin>>n;
for(;i<n;++i){cin>>x[i];s+=x[i];}
sort(x,x+n);
while(i+1){s-=x[i];q+=x[i];if(s<q){cout<<n-i;return 0;}
i--;
}
}

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int l,l1,i;
    string s;
    char b[10000];
    cin>>s;
    l=s.length();
    for(i=0;i<l;i++)
    {
        b[i]=s[2*i];
    }
    l1=strlen(b);
    sort(b,b+l1);
    for(i=0;i<l1;i++)
    {
        s[2*i]=b[i];
    }
    cout<<s;
    return 0;
}

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
using namespace std;
int main() {
	freopen("input.txt", "r", stdin);
	freopen("output.txt", "w", stdout);
	string s;
	cin >> s;
	int c = s.length(), x[4],p;
	x[1] = 0;
	x[2] = 0;
	x[3] = 0;
	if (c == 1) {
		cout << s;
	}

	else {
		for (int i = 0; i <= c; i = i + 2) {
			p = s[i] - '0';
			x[p]++;
		}
	}
	for (int i = 1; i <= x[1]; i++) {
		if (i == x[1] && (x[2] != 0 || x[3] != 0)) {
			cout << "+1+";
		}
		else {
			if (i == 1) {
				cout << "1";
			}
			else {
				cout << "+1";
			}
		}
	}
	for (int i = 1; i <= x[2]; i++) {
		if (i == x[2] && x[3] == 0) {
			cout << "2";
		}
		else {
			cout << "2+";
		}

	}
	for (int i = 1; i <= x[3]; i++) {
		if (i == x[3]) {
			cout << "3";
		}
		else {
			cout << "3+";
		}
	}
	return 0;
}

#include <iostream>
#include <cstring>
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <string>
#include <ctype.h>
#include <string.h>
using namespace std;

int main()
{
	int i,y,l,l2,j=0;int k;
	string str,str1;

		getline(cin,str);

		l=str.length();
		k=l/2;

		for(i=0;i<l;i++)
		{
		if(i%2==0)
		{
			str1[j]=str[i];

			 j++;
		}
	    }

	for(i=0;i<l/2;i++)
	{
		for(j=0;j<l/2-i-1;j++)
		{
			if(str1[j]>str1[j+1])
			{
				y=str1[j];
				str1[j]=str1[j+1];
				str1[j+1]=y;
			}
		}

	}
	for(i=0;i<l/2-1;i++)
	{
	cout<<str1[i]<<'+';
	}
	cout<<str1[k-1]<<endl;

	return 0;
}

#include <iostream>
#include<cstring>

using namespace std;

int main() {

	char s[101];
	cin>>s;
	int len = strlen(s);
	int indexArray[4]={0},i=0;
	while(s[i]!='\0'){
	    if(s[i]=='+'){
	    }
	    else{
	        indexArray[(s[i]-'0')]++;
	    }
	    i++;
	}
	for(i=1;i<4;i++){
	    int j=indexArray[i];
	    while(j>0){
	        if(i==3 && j==1){
	            cout<<i;
	        }
	        else{
	            cout<<i<<'+';
	        }
	        j--;
	    }
	}
	return 0;
}

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
	string s;
	int arr[100], count=0;
	cin >> s;
	for (int i = 0; i < s.length(); i++)
	{
		if (s[i] == '1')
		{
			arr[count]=1;
			count++;
		}
		else if (s[i] == '2')
		{
			arr[count] = 2;
			count++;
		}
		else if (s[i] == '3')
		{
			arr[count] = 3;
			count++;
		}
	}
	sort (arr, arr+count);
	for (int i = 0; i < count; i++)
	{
		cout << arr[i];
		if (i = count - 1)
		{
			break;
		}
		else
			cout << "+";
	}

	return 0;
}

//
//  main.cpp
//  Copyright © 1397 w. All rights reserved.//
//  main.cpp
//  Copyright © 1397 w. All rights reserved.
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int main()
{
    string a;
    cin>>a;
    int n=a.size();
    for(int j=0;j<n;j+=29)
    for(int i=0;i<n;i++)
    {
        if(a[i]>=a[j])
        {
        char y;
        y=a[i];
        a[i]=a[j];
        a[j]=y;
        }
    }
    cout<<a;
    return 0;
}

#include <bits/stdc++.h>

using namespace std;

int main()
{
    string x;
    //cin >> x;
    string z = "+";

    getline(cin,x);

    int s = x.size()-1;

    s = s/2;

    sort(x.begin(),x.end());

    for(int i =1; i < x.size(); i++)
    {
        if(x[i] != '+')
        {
            cout << x[i];

            if(s > 0)
                cout << z;s--;

        }

    }

}

#include <iostream>
#include <cmath>
#include <cstring>

using namespace std;

int main() {

    string opp;
    cin>>opp;
    int a=0,b=0,c=0;
    for(int i=0;i<opp.size();i++){
        if(opp[i]=='1'){
            a++;
        }
        else if(opp[i]=='2'){
            b++;
        }
        else if(opp[i]=='3'){
            c++;
        }
    }
    if(opp.size()==1){
        cout<<opp;
    }
    else{
        for(int i=0;i<a;i++){
            cout<<"1+";
        }
        for(int i=0;i<b;i++){
            cout<<"2+";
        }
        for(int i=0;i<c-1;i++){
            cout<<"3+";
        }
        if(c>0){
            cout<<"3";
        }
    }

}

#include <iostream>
#include<algorithm>
using namespace std;
int main(){
	char a[100],t;
		cin >> a;
	sort(a, a+100 );
	for (int i = 0; i < 100; i++){
		if (a[i] >= 48&&a[i]<=57){
			cout << a[i];
			for (int j = i + 1; j < 100; j++)
				if (a[j] >= 48)
					cout << "+" << a[j];
			cout << endl;
			return 0;
		}
	}

}

#include<bits/stdc++.h>
using namespace std;

int main()
{
    string str;
    vector <int> ans;

    cin >> str;

    for(int i=0; i < str.size(); i = i + 2)
    {
        ans.push_back((int) str[i]);
    }

    for(auto i=ans.begin(); i != ans.end(); i++)
    {
        cout << *i << " ";
    }
    sort(ans.begin(), ans.end());

    for(auto i=ans.begin(); i != ans.end(); i++)
    {
        cout << *i << " ";
    }

    for(auto i=ans.begin(); i != ans.end(); i++)
    {
        cout << *i << "+";
    }

    return 0;
}

#include<bits/stdc++.h>
using namespace std;

string convert(string inp){
    string a, b, c;
    for(int i = 0 ; i < inp.size(); i++){
        if(inp[i] == '1')
            a += (a!= "") ? "+1" : "1";
        else if(inp[i] == '2')
            b += (b!= "") ? "+2" : "2";
        else if(inp[i] == '3')
            c += (c!= "") ? "+3" : "3";
    }
    return a + "+"+ b +"+" + c;
}

int main(){
    string inp;
    cin >> inp;
    string res = convert(inp);
    cout << res << endl;
    return 0;
}

#include <iostream>
#include <string>
using namespace std;
int main()
{
	string s;
	int a=0, b=0, c=0, i=0;
	cin>>s;
	if(s.size()==1)
	{
		cout<<s<<endl;
		return 0;
	}
	else
	{
		for( ; i<s.size(); i+=2)
		{
			if(s[i]=='1')
				a++;
			if(s[i]=='2')
				b++;
			if(s[i]=='3')
				c++;
		}
			for(i=0; i<a; i++)
			{
				cout<<"1+";
			}
			for(i=0; i<b; i++)
			{
				cout<<"2+";
			}
			for(i=0; i<(c-1); i++)
			{
				{
				cout<<"3+";
			}
			cout<<"3"<<endl;
	}
	}
			return 0;
}

#include<bits/stdc++.h>
using namespace std;
int main()
{
    char a[101], temp;
    int i=0;
    cin>>a;
    for(;i<strlen(a)-1;i+=2)
    {
        if(a[i]>a[i+2])
        {
            temp=a[i+2];
            a[i+2]=a[i];
            a[i]=temp;
        }
    }
    cout<<a;
    return 0;
}

#include <bits/stdc++.h>

using namespace std;

int main()
{
    string a;
    cin>>a;
    int o=0,t=0,e=0;
    for(int i=0;i<a.length();i+=1){
       if(a[i]=='1') o++;
       else if(a[i]=='2') t++;
       else if(a[i]=='3') e++;
    }
    for(int i=0;i<o;i++) {cout<<"1"; if(i+1!=o) cout<<"+";}
    for(int i=0;i<t;i++) {cout<<"2"; if(i+1!=t) cout<<"+";}
    for(int i=0;i<e;i++) {cout<<"3"; if(i+1!=e) cout<<"+";}

    return 0;
}

#include<iostream>
#include<string>
using namespace std;
void main(){
string s;
cin>>s;
for (int x=0; x<s.length();x+=2){

			if (x!=0){
			if (int(s[x])<int(s[x-2])){ for(int j=x;j>=2;j=-2){
			if (s[j]<s[j-2]){
				char y=s[j];
				s[j]=s[j-2];s[j-2]=y;}
			}}}

}
cout<<s;
}

#include<iostream>
#include<string.h>
using namespace std;
int main(){
    char str[101];
    cin>>str;
    if(strlen(str)<2){
        cout<<str;
    }else{
        for(int i=0;i<strlen(str)-2;i+=2){
            if(str[i]>str[i+2]){
                char temp=str[i];
                str[i]=str[i+2];
                str[i+2]=temp;
            }
            if(i>1){
                if(str[i]<str[i-2]){
                    char temp=str[i];
                    str[i]=str[i-2];
                    str[i-2]=temp;
                }
            }
        }
        cout<<str;
    }
    return 0;
}

#include<stdio.h>
#include<string.h>
int main(void)
{
    char str[110];
    scanf("%s",str);
    int n=strlen(str);
    for(int i=0;i<n-2;i+=2){
    for(int j=0;j<n-2-i;j+=2)
    {
        if((str[j]=='3'&&str[i+2]=='2')||(str[j]=='2' && str[j+2]=='1') ||(str[j]=='3' && str[j+2]=='1'))
        {
            char ch = str[j];
            str[j]=str[j+2];
            str[j+2]=ch;
        }
    }}
    printf("%s",str);
    return 0;
}

#include<iostream>
using namespace std;
int main(){
    string a;
    int len,i, b, bl=0;
    cin>>a;
    len=a.length()-1;
    if (len==0){

         bl=1;

    }

    for(i=0; i<=len; i+=2){
        if (bl==1){
          break;

    }
      else{
        if(i==len){
            len=len-1;
            i=0;
        }
        if(a[i]> a[i+2]){
            b= a[i];
            a[i]=a[i+2];
            a[i+2]=b;
        }

      }
    }
    cout<<a<<endl;
    return 0;

}

#include<iostream>
#include<string>
using namespace std;
void main(){
string s;
cin>>s;
for (int x=0; x<s.length();x+=2){

			if (x!=0){
			if (int(s[x])<int(s[x-2])){ for(int j=x;j>=2;j=-2){
			if (s[j]<s[j-2]){
				char y=s[j];
				s[j]=s[j-2];s[j-2]=y;}
			}}}

}
cout<<s<<endl;
}

#include<bits/stdc++.h>
using namespace std;

int main()
{
    string s;
    cin>>s;
    int a[(s.size()/2)+1];
    int j=0;
    for(int i=0;s[i+1]!='\0';i+=2)
    {
        a[j]=s[i];
        j++;
    }
    sort(a,a+s.size());
    cout<<char(a[0]);
    for(int i=1;i<(s.size()/2)+1;i++)
    cout<<'+'<<char(a[i]);
}

#include <iostream>
#include <sstream>
#include <cstdio>
#include <queue>
#include <cstdlib>
#include <map>
#include <string>
#include <cstring>
#include <algorithm>
#include <vector>
#include <set>
using namespace std;

int main()
{
    char c;
    int k[4] = {0,0,0};
    string s;
    for (int i = 0; i < s.length(); i++)
    {
        if (s[i] != '+')
            k[s[i] - '0']++;
    }
    c = '1';
    while (k[c - '0'] != 0)
    {
        k[c -'0']--;
        cout << c;
        if (k[c-'0'] != 0 || k[c+1-'0']!=0)
            cout << '+';
        if (k[c-'0']==0)
            c++;
    }
    return 0;
}

//============================================================================
// Name        : HelpfulMaths.cpp
// Author      :
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================

#include <iostream>
#include <cstring>
#include <vector>
using namespace std;

int main() {
	string input;
	cin >> input;
	vector<int> buffer;

	for(int i = 0; i < input.length(); i += 2)
		buffer.push_back((int) input[i] - 48);

	int output[buffer.size()];
	for(int i = 0; i < buffer.size(); i++)
		output[i] = buffer[i];

	for (int i = 0 ; i <  buffer.size() - 1 ; i++)
	    for (int j = 0 ; j < buffer.size() - i - 1; j++)
	      if (output[j] > output[j+1])
	    	  swap(output[j], output[j+1]);

	cout << output[0];
	for(int i = 1; i < input.size() - 1; i++)
		if(output[i] == 1 || output[i] == 2 || output[i] == 3)
			cout << "+" <<output[i];
	return 0;
}

//AUTHOR:berhem
//DATE:20200302
#include <string>
#include <iostream>
int main() {
	std::string s;
	std::cin >> s;
	unsigned int cnt[3]{ 0,0,0 };
	for (char c : s)if (c == '1' || c == '2' || c == '3') cnt[(size_t)c - 49]++;
	for (size_t i = 0; i < 3; i++)
		while (cnt[i] != 0) {
			std::cout << (char)(i + 49) << '+';
			cnt[i]--;
		}
	std::cout << "\b";
	return 0;
}

#include<iostream>
#include<strings.h>
#include<algorithm>
using namespace std;
int main()
{
char s[102];
cin>>s;
int a[55],j=0,i=0;
for(i=0;i<strlen(s);i++){
    if(s[i]=='1' || s[i]=='2'||s[i]=='3')
      a[j++]=s[i];
}
sort(a,a+j+1);
for(int k=0;k<j;k++){
    printf("%d",a[k]);
    if(j!=1)
    printf("+");
}
return 0;
}

#include<bits/stdc++.h>
using namespace std;
int main()
{
	char c;
	int a[100000],ans=1;
	cin>>a[0];
	while(cin>>c>>a[ans]) ans++;
	sort(a,a+ans-1);
	for(int i=ans-1;i>=0;i--)
	{
		if(i!=0)cout<<a[i]<<"+";
		else cout<<a[0]<<endl;
	}
	return 0;
}

#include <iostream>
#include <string>
using namespace std;
int main()
{
	string str;
	cin >> str;
	int l = str.length();
for (int x = 0; x < l; x+=2)
{
		int temp, i, j;
	for (i = 0; i < l; i+=2)
	{
		for (j = 0; j < l - 1; j+=2)
		{
			if (str[j] > str[i])
			{
				temp = str[i];
				str[i] = str[j];
				str[j] = temp;
			}
		}
	}
	cout << str[x] << "+";
}
	return 0;
}

//#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
using namespace std;
int main() {
//	freopen("input.txt", "r", stdin);
//	freopen("output.txt", "w", stdout);
	string s;
	cin >> s;
	int c = s.length(), x[4],p;
	x[1] = 0;
	x[2] = 0;
	x[3] = 0;
	if (c == 1) {
		cout << s;
	}

	else {
		for (int i = 0; i <= c; i = i + 2) {
			p = s[i] - '0';
			x[p]++;
		}
	}
	for (int i = 1; i <= x[1]; i++) {
		if (i == x[1] && (x[2] != 0 || x[3] != 0)) {
			cout << "+1+";
		}
		else {
			if (i == 1) {
				cout << "1";
			}
			else {
				cout << "+1";
			}
		}
	}
	for (int i = 1; i <= x[2]; i++) {
		if (i == x[2] && x[3] == 0) {
			cout << "2";
		}
		else {
			cout << "2+";
		}

	}
	for (int i = 1; i <= x[3]; i++) {
		if (i == x[3]) {
			cout << "3";
		}
		else {
			cout << "3+";
		}
	}
	return 0;
}

#include <iostream>
#include <conio.h>
using namespace std;
main()
{
string a,b ;
cin>>a ;
int c,d,e,f ;
char v;
for (c=0;c<a.size();c+=2)
{
    b+=a[c] ;
    for (d=c;d>-1;d--)
    {
        if(b[c-d]<b[c-d+1])
           {
                 v=b[c-d] ;
        b[c-d]=b[c-d+1] ;
        b[c-d+1]=v ;

           }

    }
}
for (c=0;c<a.size();c+=2)
    a[c]=b[c/2] ;
cout<<a ;

}

#include<iostream>
#include<string>
#include<cmath>
#include<algorithm>
using namespace std;
int main() {
	int a[4] = { 0,0,0,0 };
	string s;
	cin >> s;
	int x = s.length();

	for (int i = 0; i < x; i+=2) {
		if (s[i] == '1')
			a[1]++;
		else if (s[i] == '2')
			a[2]++;
		else
			a[3]++;
	}
	int counter = 0;
	for (int j = 1; j < 4; ++j) {
		for (int i = 0; i < a[j]; ++i) {
			counter++;
			cout << j;
			if (counter != x)
				cout << "+";
		}
	}

	return 0;
}

#include<stdio.h>
#include<string.h>
int main(){
	int n,j,k;
	char str[105];
	char a[105];
	scanf("%s",str);//输入字符串时不需要&，原因可以百度一下数组名和数组地址的关系
	k=strlen(str);
	j=0;
	for(n=0;n<k;n+=2){
		a[j]=str[n];
		j++;
	}
	int x,y,z;
	z=strlen(a);
	for(x=0;x<z;x++){
		for(y=0;y<z-x-1;y++){
			if(a[y]>a[y+1]){
				int temp=a[y];
				a[y]=a[y+1];
				a[y+1]=temp;
			}
		}
	}
	for(y=0;y<=z-1;y++){
		printf("%c",a[y]);
		if(y<z-1){
			printf("%c",'+');
		}
	}
	return 0;
}

#include<iostream>
#include<string.h>
using namespace std;
int main()
{
char s[100];
cin>>s;
int l=strlen(s);
for(int i=0;i<l;i+=2)
{
for(int j=0;j<l-i-2;j+=2)
{

if(s[i]>s[i+2])
{

      swap(s[i],s[i+2]);
}
}

}
cout<<s;
return 0;
}

#include<bits/stdc++.h>

using namespace std;
int main()
{
    char str[100];
    cin>>str;
    int c1=0,c2=0,c3=0;
    for(int i=0;i<strlen(str);i+=2)
    {
        if(str[i]=='1')
            c1++;
        if(str[i]=='2')
            c2++;
        if(str[i]=='3')
            c3++;
    }
    for(int i=0;i<c1;i++)
        cout<<"1+";

    for(int i=0;i<c2;i++)
        cout<<"2+";
    if(c3>0)
        cout<<"3";
    for(int i=0;i<c3-1;i++)
            cout<<"+3";

     return 0;
}

#include <bits/stdc++.h>
using namespace std;

int main()
{
    string s,ans;
    cin>>s;
    char ch;

    int arr[3],i,c,cnt1=0;
    for(i=0;i<3;i++)
        arr[i]=0;

    for(i=0;s[i]!='\0';i++)
        if(s[i]>='1'&&s[i]<='3')
        {
            c=s[i]-49;
            arr[c]++;
        }
    ans.clear();
    for(i=0;i<3;i++)
    {
        c=arr[i];
         ch=i+49;
        while(c--)
           ans=ans+ch+'+';
    }

    int n;
    n=ans.size();

        ans[n-1]='\0';
        ans[n]='\0';
    cout<<ans<<endl;
    return 0;
}

#include<iostream>
#include<string>

using namespace std;

int main()
{
    string s;
    cin>>s;
    int n=0,j,i;
    if(s.length()%2==0)
    n=s.length()/2;
    else
    n=(s.length()/2)+1;
    int a[n];
    for(i=0,j=0;i<s.length(),i%2==0;i++)
    {
        a[j]=int(s[i]-'0');
        j++;
    }
    for(j=0;j<n;j++)
    {
        cout<<a[j]<<'+';
    }
    return 0;
}

#include <iostream>
#include <string.h>

using namespace std;
int main()
{   char s[101];
    char s1[101];
    cin.get(s, 101, '\n');
    int j = 0;
    for (int i = 0; i < strlen(s); i += 2) {
        s1[j] = s[i];
        j++;
    }
    int x;
    for (int i = 1; i < strlen(s1); i++) {
        x = s1[i];
        int j = i;
        while (j > 0 && s1[j - 1] > x) {
            s1[j] = s1[j - 1];
            j--;
        }
        s1[j] = x;
    }
    for (int i = 0; i < strlen(s1); i++) {
        cout << s1[i];
    }

    return 0;
}

#include<bits/stdc++.h>
using namespace std;

int main()
{
    string s;
    cin>>s;
    int a=0,b=0,c=0;
    for(int i=0;i<s.size();i++)
    {
        if(s[i]=='1')
        a++;
        else if(s[i]=='2')
        b++;
        else if(s[i]=='3')
        c++;
    }
    if(a>0)
    cout<<'1';
    for(int i=0;i<a-1;i++)
    cout<<"+1";
    if(b==1)
    cout<<'2';
    for(int i=0;i<b;i++)
    cout<<"+2";
    if(c==1)
    cout<<'3';
    for(int i=0;i<c;i++)
    cout<<"+3";
    return 0;
}

#include<bits/stdc++.h>
using namespace std;
int main()
    {
        string a;
        cin>>a;
        int b[100],c=0,j,i;
        for(i=1;i<a.size();++i)
            {
                b[c++]=((int)(a[i]))-48;
            }
        int l=c;
        for(i=1;i<l;++i)
            {
                c=b[i];
                for(j=i-1;j>=0;--j)
                    b[j+1]=b[j];
                b[j+1]=c;
            }
        for(i=0;i<l-1;i++)
            cout<<b[i]<<"+";
        cout<<b[i];
        return 0;
    }

#include<stdio.h>
#include<string.h>
int main()
{
	char str1[150],str2[150];
	int i,j=0,a;
	scanf("%s",str1);
	for(i=0;i<strlen(str1);i+=2)
	{
		for(j;j<=i/2;)
		{	str2[j]=str1[i];
			j++;
		}
	}
	 for (i = 0; i <strlen(str2);i++)
   	 {
        	for (j = i + 1; j <strlen(str2);j++)
       		 {
          		 if (str2[i]>str2[j])
           		 {
          				 a =str2[i];
                		 str2[i]=str2[j];
               			 str2[j] = a;
           		 }
       		 }
   	 }
	 str2[j]='\0';
	 j=0;
	 for(i=0;i<strlen(str1);i+=2)
        {
                for(j;j<=i/2;)
                {      str1[i]=str2[j];
                        j++;
                }
        }
	 str1[i]='\0';

	puts(str1);
	return 0;

}

#include <iostream>
using namespace std;

int main(){
    string s;
    cin>>s;
    int one=0,two=0,three=0;
    for(int i=0;i<s.length();i++){
        if(s[i]=='1') one++;
        if(s[i]=='2') two++;
        if(s[i]=='3') three++;
    }
    for(int i=0;i<one;i++)
        cout<<'1'<<"+";
    for(int i=0;i<two;i++)
        cout<<'2'<<"+";
    for(int i=0;i<three-1;i++)
        cout<<'3'<<"+";
    if(three>0) cout<<3;

    return 0;
}

#include <iostream>
#include <string>

using namespace std;

int main()
{

  string s;
  string num;
  num[0]=1;
  num[1]=2;
  num[2]=3;
  cin>>s;
  for(int i=0;i<s.length();i++)
  {
      if(s[i] ==  '1')
      cout<<'1'<<"+";
      else
      continue;
  }
 for(int i=0;i<s.length();i++)
  {
      if(s[i]== '2')
      cout<<'2'<<"+";
  }
 for(int i=0;i<s.length();i++)
 {
      if(s[i]== '3')
      cout<<'3';
      else;
      if(s[i]== '+' && s[i]!= '1' && s[i]!= '2')
      cout<<"+";

 }

    return 0;
}