Xenia the beginner mathematician is a third year student at elementary school. She is now learning the addition operation.The teacher has written down the sum of multiple numbers. Pupils should calculate the sum. To make the calculation easier, the sum only contains numbers 1, 2 and 3. Still, that isn't enough for Xenia. She is only beginning to count, so she can calculate a sum only if the summands follow in non-decreasing order. For example, she can't calculate sum 1+3+2+1 but she can calculate sums 1+1+2 and 3+3.You've got the sum that was written on the board. Rearrange the summans and print the sum in such a way that Xenia can calculate the sum.

The first line contains a non-empty string s — the sum Xenia needs to count. String s contains no spaces. It only contains digits and characters "+". Besides, string s is a correct sum of numbers 1, 2 and 3. String s is at most 100 characters long.

#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 <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<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>
#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>
#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 <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 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;

}

// 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");
}

#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 <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;

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 <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;
}

/*
 * @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<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 <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() {

	/*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;
}

#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 <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 <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 <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 <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<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<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");

}

#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<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<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<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 <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 <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 <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 <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 <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<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);

}

///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<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<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 <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 "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>
#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 <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>
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>
#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<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 <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<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;

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<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>

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 <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 <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<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<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;

}

#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 <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;

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 <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 <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<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");

}

#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<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;

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 <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<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;
}

//
//  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>
#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 <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 <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<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 <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<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 <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 <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 <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 <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 <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<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 <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>
#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<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;

}

#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<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 <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 <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 <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 <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<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<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<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<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>
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;
}