s = input()
mass = list(map(int, s.split("+")))

for j in range(len(mass)):
    minid = j
    for i in range(j+1, len(mass)):
        if mass[minid] > mass[i]:
            minid = i
    minim = mass[minid]
    mass[minid] = mass[j]
    mass[j] = minim

ns = str(mass[0])
for i in range(1, len(mass)):
    ts = str(mass[i])
    ns = ns + "+" + ts

print(ns)

list = input().split("+")
int_list = []
for _ in list:
    int_list.append(int(_))
sorted_int_list = sorted(int_list)
sorted_string = ""
for _ in sorted_int_list:
    sorted_string += str(_) + " "
sorted_str_list = sorted_string.strip().split(" ")
print("+".join(sorted_str_list))

# -*- coding: utf-8 -*-
"""
Created on Tue Oct 20 14:04:12 2020

@author: Luke
"""
l=sorted(input()[::2])
print('+'.join (l))

a=[w for w in input().split('+')]
a.sort(key=int)
print('+'.join(w for w in a))

eq = list(raw_input())
eq = sorted(eq)
nofp = int(len(eq)/2)

for i in range(len(eq)-1):
    try:
        eq.remove("+")
    except:
        eq[i-nofp] = eq[i-nofp]+"+"

print "".join(eq)

line = [int(e) for e in input().split('+')]
line.sort()
print('+'.join([str(e) for e in line]))

s=input()
p=[];one=0
for i in s:
    if i!='+':
        if i=='3':
            p.append('3')
        if i=='1':
            p.insert(0,'1')
            one+=1
        if i=='2':
            p.insert(one,'2')
print('+'.join(p))

mathSequence = input()

perfectSequence = []

for i in mathSequence:
    if i != "+":
        perfectSequence.append(int(i))

perfectSequence.sort()

ln = len(perfectSequence)

for i in range(0, ln):
    print(perfectSequence[i], end="")

    if i < ln - 1:
        print("+", end="")

k = raw_input()
l = len(k)+1
L = []
for i in range(1,l):
    if i%2 == 1:
        L.append(k[i-1])

L = sorted(L)
le = len(L)
K = []
for i in range(0,le):
    K.append(L[i])
    K.append('+')

print ''.join(K[:-1])

s = input()
if len(s) == 1:
    print(int(s[0]))
else:
    s = s.split("+")
    s = sorted(s)
    s1 = '+'.join(x for x in s)
    print(s1)

s = raw_input()
ar = [0] * 5
le = len(s)

for i in range(0,le):
    if s[i] == '1':
        ar[1] += 1
    if s[i] == '2':
        ar[2] += 1
    if s[i] == '3':
        ar[3] += 1

ans = "";
for i in range(0,ar[1]):
    ans += str(1);
    ans += "+"

for i in range(0,ar[2]):
    ans += str(2)
    ans += "+"

for i in range(0,ar[3]):
    ans += str(3)
    ans += "+"

ans = ans[:-1]

print ans

s = raw_input()
sn = []
j = 0
for i in range(0,len(s),2):
    sn.append(s[i])
    j += 1

k = 1
while k == 1:
    k = 0
    for i in range(k,len(sn)-1):
        if sn[i+1]< sn[i]:
            sn[i],sn[i+1] = sn[i+1], sn[i]
            k = 1

sp = sn[0]
for i in range(1,len(sn)):
    sp = sp + '+' + sn[i]
print sp

s=input()
k=len(s)//2+1
num=[]
for i in range(k):
    num.append(int(s[2*i]))
num.sort()
out=''
for j in range(k-1):
    out=out+str(num[j])+'+'
out=out+str(num[-1])
print(out)

def ass(a):
    if '+' not in a:
        return a
    # print(sorted(a.split('+')))
    return '+'.join(list(map(str, sorted(a.split('+')))))

def ass2(a):
    if '+' not in a: return a
    r = {'1':0, '2':0, '3':0}
    for i in a.split('+'):
        r[i] += 1
    res = '1+'*r['1'] + '2+'*r['2'] + '3+'*r['3']
    return res[:-1]

print(ass2(input()))

n = raw_input()
l=[]
for i in n[::2]:
	l.append((i))
l = sorted(l)
print "+".join(l)

print '+'.join(map(str, sorted(map(int, raw_input().split('+')))))

import sys

sumString = raw_input('')

count = [0]*3

i = 0
while i < len(sumString):
	count[int(sumString[i])-1] += 1
	i += 2

c = 0
index = 0
total = sum(count)
first = True
while index < len(count):
	if count[index] > 0:
		if (c != 0 or index != 0) and not first:
			sys.stdout.write('+')
		sys.stdout.write(str(index+1))
		first = False
		c += 1
	if c == count[index]:
		index += 1
		c = 0

def partition(arr, low, high):
    i=low-1
    pivot=arr[high]
    for j in range (low,high):
        if arr[j]<=pivot:
            i+=1
            arr[j],arr[i]=arr[i],arr[j]
    arr[i+1],arr[high]=arr[high],arr[i+1]
    return i+1

def Quicksort(arr, low, high):
    if low<high:
        pi=partition(arr, low, high)
        Quicksort(arr, low, pi-1)
        Quicksort(arr, pi+1, high)

arr=[]
n =input()
number=len(n)
for i in range (0,number):
   if i%2==1:
       continue
   arr.append(int(n[i]))
Quicksort(arr,0,len(arr)-1)
for i in range (0,len(arr)):
    if i!=(len(arr)-1):
        print (str(arr[i]),'+',sep="", end=""),
    else:
        print (str(arr[i]))

#!/bin/python

import math
import os
import random
import re
import sys

# Complete the hourglassSum function below.

def hourglassSum(str_input):
    processed_num_list = []
    num_list = x = str_input.split("+")
    for item in num_list:
        processed_num_list.append(int(item))
    processed_num_list.sort()

    result = ""
    for item in processed_num_list:
        result += str(item)+'+'
    len_ = len(result)
    print result[:(len_-1)]

if __name__ == '__main__':
    str_input = str(raw_input())
    hourglassSum(str_input)

s = raw_input()
s = s.split('+')
x = [int(xx) for xx in s]
x = sorted(x)

x = '+'.join(str(xx) for xx in x)
print x

final=""
string=raw_input()
lisst = map(int,string.split("+"))
lisst = sorted(lisst)
for i in range(0,len(lisst)):
    k=lisst[i]
    final=final+ str(k) + "+"
print final[:len(final)-1]

l = map(int, raw_input().split('+'))
l.sort()
b = ""
for i in range(len(l)) :
    if i != len(l)-1 : b+= str(l[i]) + "+"
    else  : b += str(l[i])
print b

from sys import stdin, stdout
ti = lambda : stdin.readline().strip()
ma = lambda fxn, ti : map(fxn, ti.split())
ol = lambda arr : stdout.write(' '.join(str(i) for i in arr) + '\n')
os = lambda i : stdout.write(str(i) + '\n')
olws = lambda arr : stdout.write(''.join(str(i) for i in arr) + '\n')

op = list(ti())
for i in range(op.count('+')):
	op.remove('+')
op.sort()
i = 1
while i < len(op):
	op.insert(i, '+')
	i += 2

op = ''.join(op)
os(op)

def arrangesum(inStr):
    sList = inStr.split("+")
    sListInts = []
    outStr = ""
    if len(inStr) <= 100:
        try:
            for x in sList:
                sListInts.append(int(x))
            sListInts.sort()
            outStr = str(sListInts[0])
            for y in range(len(sListInts)-1):
                outStr += "+" + str(sListInts[y+1])
            print(outStr)

        except(ValueError):
            outStr = "Error"
    else:
        print("Error")
        outStr = "Error"
    return outStr

s = input()
arrangesum(s)

from sys import stdin, stdout
a = stdin.readline().rstrip().split("+")
print '+'.join(sorted(a))

s=raw_input()

s=s.replace("+"," ")
s=s.split()
s.sort()
print '+'.join(s)

inp = list(raw_input())
line = []

for i in range(0, len(inp)):
    if inp[i] != "+":
        line.append(inp[i])

line.sort()
print "+".join(line)

def helpfulMaths(s):

	s = list(s)
	t = []

	for i in range(len(s)):
		if s[i] != '+':
			t.append(s[i])

	t = sorted(t)

	i = 0
	while i < len(t) - 1:
		t.insert(i + 1, '+')
		i += 2
	return ''.join(t)

s = raw_input()
print(helpfulMaths(s))

# print(helpfulMaths('3+2+1'))

s = raw_input()
numbers = map(int, s.split('+'))
numbers.sort()
print '+'.join(str(x) for x in numbers)

a=map(int,raw_input().split('+'))
a.sort()
s=""
length=len(a)
if (a[length-1]<=3):
	for i in range(0,length):
		s=s+str(a[i])+'+'
	print s[0:(len(s)-1)]

if __name__ == "__main__":
    print "+".join(map(str, sorted(map(int, raw_input().split("+")))))

inp = raw_input().strip()
ones = 0
twos = 0
threes = 0
for i in range(len(inp)):
  if inp[i] == '1':
    ones += 1
  elif inp[i] =='2':
    twos += 1
  elif inp[i] == '3':
    threes +=1
numTrack = []
stringList = []
for i in range(ones):
  stringList.append('1')
for i in range(twos):
  stringList.append('2')
for i in range(threes):
  stringList.append('3')
print '+'.join(stringList)

s1=[int(x) for x in raw_input().split('+')]
s1.sort()
k=""
for j in range(len(s1)):
    k=k+str(s1[j])
    if j!=len(s1)-1:
        k+='+'
print k.strip()

s=raw_input()
s=s.split('+')
s=sorted(s)
ans=''
for i in s:
	ans+=i
	ans+='+'
ans=ans[:len(ans)-1]
print ans

string = str(input(""))
temp = string.split("+")

#insertion sort
def insertionSort(alist):
   for index in range(1,len(alist)):

     currentvalue = alist[index]
     position = index

     while position>0 and alist[position-1]>currentvalue:
         alist[position]=alist[position-1]
         position = position-1

     alist[position]=currentvalue

def printV(alist):
    temp2 = ""
    for i in range (0, len(alist)):
        temp2 += str(alist[i])
        if i != len(alist)-1:
            temp2 += "+"
    print(temp2)

insertionSort(temp)
printV(temp)

s=input()
if len(s)==1:
    print(s)
else:
    l=[]
    for i in range(0,len(s),2):
        l.append(s[i])
    l.sort()
    for i in range(0,len(l)-1):
        print(l[i],"+",end="",sep="")
    print(l[i+1])

s = input().strip()
numbers = sorted(s.split('+'))

for i in range(len(numbers) - 1):
    print(str(numbers[i])+'+', end='')

print(numbers[-1])

#import sys
#sys.stdin=open("input.txt","r")
s=input()
a=s.split("+")
a.sort()
y="+".join(a)
print(y)

numbers = raw_input().split('+')
numbers.sort()
print '+'.join(numbers)

import random

def del_nulls(arr):
	x = {}
	count, i = 0, -1
	while i < len(arr) - 1:
		i += 1
		count += 1
		if arr[i] in x:
			x[arr[i]] += 1
			arr.remove(arr[i])
			i -= 1
		else: x.update([(arr[i], 1)])
	return(x)

def qsort(arr, left, right):
  if (right - left > 1):
    a = (right + left)//2
    l, r = left, right
    while (l != r):
      while (arr[l] < arr[a]): l += 1
      while (arr[r] > arr[a]): r -= 1
      if (l > r):
        l, r = r, l
      else:
        arr[l], arr[r] = arr[r], arr[l]
    if (l != right):
      qsort(arr, left, l)
    if (r != left):
      qsort(arr, r, right)
  elif (arr[left] > arr[right]):
    arr[left], arr[right] = arr[right], arr[left]

arr = list(map(int, input().split('+')))

del_list = del_nulls(arr)

qsort(arr, 0, len(arr) - 1)
for i in range(0, len(arr)):
	for j in range(0, del_list[arr[i]]):
		if (not(i == 0 and j == 0)): print('+', end='')
		print(arr[i], end='')

xenia = input('')
new = []
final = ''
plus = 0
new.extend(xenia)
for i in new:
  if i == '+':
    new.remove(i)
    plus += 1

new.sort()
for j in new:
  if len(final) == new.__len__() + plus- 1 :
    final += j
  else:
    final += j + '+'

print(final)

l = list(map(int,input().split("+")))
l.sort()
leng = len(l)
for x in range(leng):
    if(x == leng-1):
        print(l[x])
    else:
        print(l[x],end = "+")

n=input()
if(len(n)<=100):
    a=[]
    for i in range(0,len(n),2):
         a.append(n[i])
    for i in range(0,len(a)):
        a[i]=int(a[i])
    for i in range(0,len(a)):
        for j in range(i,len(a)):
            if(a[i]>a[j]):
                a[i],a[j]=a[j],a[i]
    for i in range(0,len(a)):
        print(a[i],end="")
        if(i!=len(a)-1):
            print('+',end="")

a = input()
l = len(a)
arr = list()
i = 0
while i<l:
    arr.append(a[i])
    i += 2
arr.sort()
val = ""
for e in range(len(arr)):
    if e == (len(arr)-1):
        val += arr[e]
    else:
        val += arr[e]
        val += '+'
print(val)

s = input().split('+')
s.sort()
for i in range(0, len(s)):
    print(s[i],end = "")
    if(i < len(s) - 1):
        print("+", end = "")

stri=input()
pos=0
a=[0]*int(len(stri)/2+1)

for r in stri:
	if r!='+':
		a[pos]=int(r)
		pos+=1

a.sort()

for j in range(1,len(stri),2):
	a.insert(j,"+")

for i in a:

	print(i,end="")

def heapify(a,i,n):
    l = i
    lc=2*i +1
    rc=2*i +2

    if lc<n and int(a[lc])>int(a[l]):
        l=lc
    if rc<n and int(a[rc])>int(a[l]):
        l=rc

    if l!=i:
        a[l],a[i]=a[i],a[l]
        heapify(a,l,n)

s = input().replace('+',' ').split()

if len(s)==1:
    print(*s)
else:
    for i in range(len(s)//2,-1,-1):
        heapify(s,i,len(s))

    for i in range(len(s)-1,0,-1):
        s[0],s[i]=s[i],s[0]
        heapify(s,0,i)

    print('+'.join(s))

def main():

    input_sum = input()
    list_of_numbers = []

    for val in input_sum:

        if val != "+":

            list_of_numbers.append(val)

    list_of_numbers = sorted(list_of_numbers)

    output_string = ""
    for i in range(len(list_of_numbers)):

      if i != len(list_of_numbers) -1 :
        output_string = output_string + str(list_of_numbers[i]) + "+"
      else:
        output_string = output_string + str(list_of_numbers[i])

    print(output_string)

def sec_main():

    count1 = 0
    count2 = 0
    count3 = 0

    input_sum = input()

    for val in input_sum:

        if val != "+":

            if int(val) == 1:
                count1+=1
            elif int(val) == 2:
                count2+=1
            else:
                count3+=1

    output_sum = "1+"*count1 + "2+"*count2 + "3+"*count3
    output_sum = output_sum[0:-1]
    print(output_sum)

if __name__ == "__main__":

    #main()

    sec_main()

a = list(input().split("+"))
a.sort()
for i in range(len(a)):
    if i != len(a)-1:
        print(a[i]+"+",end="")
    else:
        print(a[i])

a=input()
b=[]

for i in a :
 if i!= "+":
  b.append(int(i))

b.sort()
ln=len(b)

for i in range (0,ln) :
  print(b[i],end = "")

  if i<ln-1:
   print("+",end = "")

a=input()
b=len(a)
if b==1:
    print(a)
else:
    l=[]
    for i in range(0,b,2):
        l.append(a[i])
    l=sorted(l)
    for i in range(len(l)):
        if i==len(l)-1:
            print(l[i],end='')
        else:
            print(l[i],end='+')

S = sorted([s for s in input().split('+')])
print('+'.join(S))

s=input("")

nums = list(map(int, s.split("+")))

def selectionSort(alist):
    for i in range(len(alist)-1,0,-1):
        positionOfMax = 0
        for location in range(1,i+1):
            if alist[location]>alist[positionOfMax]:
                positionOfMax = location

        temp = alist[i]
        alist[i] = alist[positionOfMax]
        alist[positionOfMax] = temp

selectionSort(nums)
s = '+'.join(map(str,nums))
print(s)

s=list(input())
a=(len(s)+1)/2
for i in range(int(a)):
	for k in range(i+1,int(a)):
		if s[2*i]>s[2*k]:
			s[2*i],s[2*k]=s[2*k],s[2*i]
print(''.join(s))

txt = [ int(i) for i in input().split("+")]
print("+".join([str(i) for i in sorted(txt)]))

s = input()
l = s.split("+")
z = sorted(l)
ss = ""
for i in range(len(z)):
    if len(z) == 1:
        ss = ss + z[i]
    elif i == len(z)-1:
        ss = ss + z[i]
    else:
        ss = ss + z[i] + "+"
print(ss)

s=input()
n=""
for i in range(len(s)):
    if i%2==0:
        n+=s[i]

n='+'.join(sorted(n))
print(n)

math=input().split('+')
math.sort()
for i in range (len(math)):
    print(math[i],end='')
    if i!=len(math)-1:
        print('+',end='')

a=input()
s=[]
for i in range(0,len(a),2):
    s.append(a[i])
s.sort()
for i in range(len(s)):
    if (i!=len(s)-1): print(s[i],end="+")
    else: print(s[i])

l=[int(x) for x in input().split('+')]
l.sort()
n=len(l)
for i in range(n):
  l[i]=str(l[i])
string='+'.join(l)
print(string)

istring = input()

# checking for the length of the string
#print(len(istring))

# case 1: when there is only one number
if len(istring) == 1:
    print(istring)

else:
    newistring = istring.replace("+","")
    #print(newistring)

    count1 = 0
    count2 = 0
    count3 = 0

    for number in newistring:
        if number == '3':
            count3 += 1
        elif number == '2':
            count2 += 1
        elif number == '1':
            count1 += 1

    #print(count1)
    #print(count2)
    #print(count3)

    finalstringlist = list()
    while count1 != 0:
        finalstringlist.append('+1')
        count1 -= 1
    while count2 != 0:
        finalstringlist.append('+2')
        count2 -= 1
    while count3 != 0:
        finalstringlist.append('+3')
        count3 -= 1

    finalstring = "".join(finalstringlist)
    #print(finalstring)

    ans = finalstring.replace('+','',1)
    print(ans)

string = input()
newStr = []
for i in range(len(string)):
    if(string[i] != '+'):
        newStr.append(int(string[i]))
newStr.sort()
andron = len(newStr)
count = 1
for i in newStr:
    if(count != andron):
        print((str(i) + '+'), end="")
    else:
        print((str(i)), end="")
    count += 1

print '+'.join(map(str, sorted(map(int, raw_input().split('+')))))

arr = sorted(input().split('+'))
n = len(arr)
for i in range(n-1): print(arr[i], end="+")
print(arr[-1])

def dumbXenia(values):
    values.sort();res =""
    for i in range(values.count('+')):
        values.pop(0)
    leftover_size = len(values)
    if leftover_size == 1:
        print values[0]
    else:
        for i in range (leftover_size):
            if i+1 < leftover_size:
                res += values[i]+'+'
            else:
                res += values[i]
        print res
values = raw_input()
dumbXenia(list(values))

def rearrange():
    s = input()
    c = [0]*3
    i=0
    for i in s:
        if i=="1":
            c[0]+=1
        elif i =="2":
            c[1]+=1
        elif i == "3":
            c[2]+=1
    s = ""
    for i in range(len(c)):
        counter = i+1
        for _ in range(c[i]):
            s+= str(counter) + "+"
    s = s[:-1]
    print(s)

rearrange()

from __future__ import print_function
string = raw_input()
nums = []
i = 0
while(i < len(string)):
    if(i%2 == 0):
        nums.append(string[i])
    i += 1
nums = map(int, nums)
nums.sort()
k = 0
while(k < len(nums)):
    if(k != len(nums)-1):
        print (str(nums[k])+"+", end = '')
    else:
        print (str(nums[k]), end = '')
    k += 1

s = map(int, raw_input().split('+'))
s.sort()
print '+'.join(map(str, s))

s = input()
arr = s.split('+')
arr.sort()
print("+".join(map(str, arr)))

t=input()
l=[]
for i in range(len(t)):
    if t[i]!='+':
        l.append(t[i])

for i in range(len(l)):
    l[i]=int(l[i])
    i+=1

l.sort()

for i in range(len(l)):
    l[i]=str(l[i])
    i+=1

for i in l:
    if i!=l[len(l)-1]:
        print(i+'+',end='')
    elif i==l[len(l)-1]:
        print(i)

inp = input()
nums = []
for symb in inp:
    if symb != '+':
        nums.append(int(symb))
print(nums)
nums.sort()
new_str = ''
for num in nums:
    if nums.index(num) == 0:
        new_str += str(1)
    else:
        new_str+= '+' + str(num)
print(new_str)

def HelpfulMaths():
    string = str(input())
    n1 = n2 = n3 = 0
    for i in range(0,len(string),2):
        if string[i] == '1':
            n1 += 1
        elif string[i] == '2':
            n2 += 1
        else:
            n3 += 1
    string = "1+"*n1 + "2+"*n2 + "3+"*n3
    return string[:-1]

a=input()
for i in range(0,len(a),2):
    for j in range(2, len(a)-2,2):
        if (a[j]>a[i]):
            temp=a[j]
            a=a.replace(a[i],a[j])
            a=a.replace(a[j],temp)
print(a)

'''
n=int(input())
for i in range(n):
    s=input()
    if len(s)>10:
        print(f'{s[0]}{len(s)-2}{s[len(s)-1]}')
    else:
        print(s)
'''

s=input()
li=s.split("+")
s=''
for i in range(len(li)-1):
    s+=(li[i]+'+')
s+=li[len(li)-1]
print(s)

s = input()
if len(s)>1:
    for i in range(0,len(s)-1,2):
        if int(s[i])<=int(s[i+2]):
            print(s[i]+'+',end='')
        else:
            print(s[i+2]+'+',end='')

    print(s[i+2])
else:
    print(s)

def HelpfulMaths():
    n = str(input())
    n = n.replace("+","")
    n = list(n)
    n.sort()
    string = ""
    for i in n:
        string = string + str(i) + "+"
    if string.endswith('+'):
        string = string[:-1]
        return string

def HelpfulMaths(n):
    n = n.replace("+","")
    n = list(n)
    n.sort()
    string = ""
    for i in n:
        string = string + str(i) + "+"
    if string.endswith('+'):
        string = string[:-1]
        return string

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

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

Output
Print the new sum that Xenia can count.

Examples
input
3+2+1
output
1+2+3
"""

def summation_in_order(the_string):
    equation = the_string.split('+')
    ones = []
    twos = []
    threes = []
    for i in equation:
        if int(i) == 1:
            ones.append(i)
        elif int(i) == 2:
            twos.append(i)
        elif int(i) == 3:
            threes.append(i)
    entire_equation = []
    for _ in ones:
        entire_equation.append(str(_) + '+')
    for _ in twos:
        entire_equation.append(str(_) + '+')
    for _ in threes:
        entire_equation.append(str(_) + '+')
    entire_equation_true = ''.join(entire_equation)
    entire_equation_true = entire_equation_true[:-1]
    total = 0
    for _ in entire_equation_true:
        if _.isdigit():
            total += int(_)
    return entire_equation_true

print(summation_in_order('3+2+1'))

var = input("Please")
plus = "+"
new = []
for i in var:
    new.append(i)
kek = []
discard = []
for i in range(len(new)):
    if new[i] == "+":
        discard.append(new[i])
    else:
        kek.append(new[i])
kek.sort()
a = tuple(kek)
print(plus.join(a))

l = raw_input().split('+')
c = {'1': 0, '2': 0, '3': 0}
for i in l:
    c[i] += 1
s = []
for key in c.keys():
    s += [key] * c[key]
print '+'.join(s)

import sys
s=raw_input()

l=len(s)
c=0
d=0
e=0

for i in range(0,l):
    if s[i]=='1':
        c=c+1
    elif s[i]=='2':
        d=d+1
    elif s[i]=='3':
        e=e+1

for i in range(0,c):
    if i==c-1:
        if d>0 or e>0:
            print '1'+'+',
        else:
            print '1'
    else:
        print '1'+'+',
        sys.stdout.softspace=0
sys.stdout.softspace=0
for i in range(0,d):
    if i==d-1:
        if e>0:
            print '2'+'+',
        else:
            print '2'
    else:
        print '1'+'+',
        sys.stdout.softspace=0
sys.stdout.softspace=0
for i in range(0,e):
    if i==e-1:
        print '3'
    else:
        print '3'+'+',
        sys.stdout.softspace=0

lst = sorted([str(x) for x in input().split("+")])
print(lst)
str1 = lst[0] + "+"
for i in range(1, (len(lst) - 1)):
    str1 = str1 + lst[i] + "+"
str1 = str1 + lst[len(lst) - 1]
print(str1)

n = input()
l = 0
k = 0
j = 0
h = ''
for i in n:
    if i == '1':
        l+=1
    elif i =='2':
        k+=1
    elif i == '3':
        j+=1
for s in range(l):
    h += '1+'
for q in range(k):
    h += '2+'
for w in range(j):
    if w+1!=j:
        h += '3+'
    else: h +='3'
if (l==1 and k == 0 and j==0) or (l==0 and k == 1 and j==0) or (l==0 and k == 0 and j==1):
    if l==1:
        print(1)
    elif k == 1:
        print(2)
    elif j == 1:
        print(3)
elif l>1 or j>1 or k>1:
    print(h)

str=input()
count1=0
count2=0
count3=0
for i in range(0,len(str)):
    if str[i]=='1':
        count1+=1
    elif str[i]=='2':
        count2+=1
    elif str[i]=='3':
        count3+=1

for k in range(count1):
    print(1, sep='+',end='')
    print("+",sep='',end='')
for u in range(count2):
    print(2, sep='+',end='')
    print("+",sep='',end='')
for v in range(count3):
    print(3, sep='+',end='')
    if v!=count3-1:
        print("+", end='')

string = "2" #input
temp = string.split("+")

#insertion sort
def insertionSort(alist):
   for index in range(1,len(alist)):

     currentvalue = alist[index]
     position = index

     while position>0 and alist[position-1]>currentvalue:
         alist[position]=alist[position-1]
         position = position-1

     alist[position]=currentvalue

def printV(alist):
    temp2 = ""
    for i in range (0, len(alist)):
        temp2 += str(alist[i])
        if i != len(alist)-1:
            temp2 += "+"
    print(temp2)

insertionSort(temp)
printV(temp)

lst = sorted([str(x) for x in input().split("+")])
#print(lst)
str1 = lst[0] + "+"
for i in range(1, (len(lst) - 1)):
    str1 = str1 + lst[i] + "+"
str1 = str1 + lst[len(lst) - 1]
print(str1)

ring = str(input())
a = sorted(ring[::2])
b = []
#print(len(a))
for i in range(0,len(a)):
    #print(i)
    b += a[i] + "+"
b = str(b[:-1])
print("".join(b))

s=input()
t=len(s)
k=0
j=""
l=[]
for i in range(0,len(s)):
    if(s[i]=='+'):
        l.append(s[i-1])
    else:
        continue
l.sort()
for i in range(0,len(l)):
    if(i==len(l)-1):
        j=j+l[i]
    else:
        j=j+l[i]+'+'
    i=i+1
print(j)

n = input()
tab = []
tab2 = []
ans = ""
for i in n:
    if i != "+":
        tab.append(i)
tab.sort()
for o in tab:
    ans += o
    if o != tab[-1]:
        ans += "+"
print(ans)

s=raw_input()
o='1+' * s.count('1')
t='2+' * s.count('2')
th='3+' * s.count('3')
if o=='':
    print t,th
elif o=='' and t=='':
    print th
elif o=='' and th=='':
    print t
elif th=='':
    print o,t
elif th=='' and t=='':
    print o

def rearrange(s):
    c = [0]*3
    i=0
    for i in s:
        if i=="1":
            c[0]+=1
        elif i =="2":
            c[1]+=1
        elif i == "3":
            c[2]+=1
    s = ""
    for i in range(len(c)):
        counter = i+1
        for _ in range(c[i]):
            s+= str(counter) + "+"
    s = s[:-1]
    print(s)

l = map(int, raw_input().split('+'))
b = ""
for i in range(len(l)) :
    if i != len(l)-1 : b+= str(l[i]) + "+"
    else  : b += str(l[i])
print b

s=input()
a=[]
a.append(s[0])
for i in range(2,len(s)):
	if i%2==0:
		a.append(s[i])
a.sort()
for i in range(len(a)):
	print(a[i]+"+",end="")

num=sorted(input().split('+'))
o=''
for i in range(len(num)):
    o+=num[i-1]
    if i!=len(num):
        o+='+'
print(o)

string=input()
count1=int(0)
count2=int(0)
count3=int(0)
for i in string:
    if i=='1':
        count1+=1
    elif i=='2':
        count2+=1
    elif i=='3':
        count3+=1
for i in range(count1-1):
    print(1,end="+")
print(1,end="")
if count2>0 or count3>0:
    print('+',end="")
for i in range(count2-1):
    print(2,end="+")
if count2>0:
    print(2,end="")
if count3>0:
    print('+',end="")
for i in range(count3-1):
    print(3,end="+")
if count3>0:
    print(3)

s = input()
l = s.split("+")
z = sorted(l)
ss = ""
for i in range(len(z)):
    if len(z) == 1:
        ss = z[i]
    elif i == len(z)-1:
        ss = ss + z[i]
        ss = z[i]
    else:
        ss = ss + z[i] + "+"
ss

def HelpfulMaths():
    n = str(input())
    n = n.replace("+","")
    n = list(n)
    n.sort()
    string = ""
    for i in n:
        string = string + str(i) + "+"
    if string.endswith('+'):
        return string[:-1]

'''
n=int(input())
for i in range(n):
    s=input()
    if len(s)>10:
        print(f'{s[0]}{len(s)-2}{s[len(s)-1]}')
    else:
        print(s)
'''

s=input()
li=list()

for c in s:
    if c >= '1':
        print(c)
        li.append(c)
li.sort()
s=""
i=0
while i<(len(li)-1):
    s+=(li[i]+"+")
    i+=1
s+=li[i]
print(s)

x=raw_input()
y=sorted(x.split("+"))
print "+".join(x)

num=sorted(input().split('+'))
o=''
for i in num:
    o+=i
    o+='+'
print(o)

x = raw_input().split("+")
print '+'.join(x)

s=str(input())
s1=s.split('+')
sum=0
s1.sort()
for i in s1:
    print(i,sep='+')

a=input()
for i in range(0,len(a),2):
    for j in range(2, len(a)-2,2):
        if (a[j]>a[i]):
            temp=a[j]
            a=a.replace(a[i],a[j])
            a=a.replace(a[j],temp)
print(a)

a =input().split('+')

for i in range(len(a)):
    for j in range(len(a[i+1:])):
        print(a[i+1:],end = '')
        print(a[i] + '.' + a[i+j+1])
        if(a[i] > a[i+j+1]):
            temp = a[i]
            a[i] = a[i+j+1]
            a[i+j+1] = temp
print('+'.join(a))

s=str(raw_input())
a=s.split('+')
a.sort(key=int)

for i in a:
	print i
	if a.index(i)!=len(a)-1:
		print '+'

line = input()

def sortN(numbers):
    if (len(numbers) == 1) or (len(numbers) == 0):
        return numbers
    num = numbers[0]

    left = []
    mid = []
    right = []
    for i in numbers:
        if i == num:
            mid.append(i)
        elif i < num:
            left.append(i)
        else:
            right.append(i)

    return sortN(left) + mid + sortN(right)

strin = ""
if len(line) == 1:
    print(line)
else:
    numbers = [int(i) for i in line.split("+")]
    sortN(numbers)
    print('+'.join(str(x) for x in numbers))

def arrangesum(s):
    sList = s.split("+")
    sListInts = []
    outStr = ""

    try:
        for x in sList:
            sListInts.append(int(x))
        sListInts.sort()
        outStr = str(sListInts[0])
        for y in range(len(sListInts)-1):
            outStr += "+" + str(sListInts[y+1])

    except(ValueError):
        outStr = "Error"
    return outStr

a=input().split('+')
a.sort()
#s=''
for i in range(len(a)):
	print(a[i],'+',sep='',end='')

string = input()
newStr = []
for i in range(len(string)):
    if(string[i] != '+'):
        newStr.append(int(string[i]))
newStr.sort()
andron = len(string)
for i in newStr:
    if(i != len(newStr)):
        print((str(i) + '+'), end="")
    else:
        print((str(i)), end="")

def sort(alist):
    iteration = 0
    while iteration < len(alist):
        greatestindex = iteration
        i = iteration
        while i < len(alist):
            if (alist[i]) > (alist[greatestindex]):
                greatestindex = i
            i += 1
        temp = alist[greatestindex]
        alist[greatestindex] = alist[iteration]
        alist[iteration] = temp
        iteration += 1
    return alist

s = input()
s = s.split("+")
s = list(map(int, s))
print(sort(s))

line=raw_input()
p=list(line)
if len(p)>1:
    for i in range(0,len(p),2):
        if i>=(len(p)-1):
            i=0
        if p[i]>=p[i+2]:
            z=p[i]
            p[i]=p[i+2]
            p[i+2]=z

print "".join(p)

a=" "
n=input()
m=n.split("+")
for i in range(len(m)):
    for j in range(i,len(m)):
        if m[i]>m[j]:
            t=m[i]
            m[i]=m[j]
            m[j]=t
for i in range(len(m)):
    if i==0:
        print(m[i],end="")
    else:
        print("+",m[i],end="")

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

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

Output
Print the new sum that Xenia can count.

Examples
input
3+2+1
output
1+2+3
"""

def summation_in_order(the_string):
    equation = the_string.split('+')
    ones = []
    twos = []
    threes = []
    for i in equation:
        if int(i) == 1:
            ones.append(i)
        elif int(i) == 2:
            twos.append(i)
        elif int(i) == 3:
            threes.append(i)
    entire_equation = []
    for _ in ones:
        entire_equation.append(str(_) + '+')
    for _ in twos:
        entire_equation.append(str(_) + '+')
    for _ in threes:
        entire_equation.append(str(_) + '+')
    entire_equation_true = ''.join(entire_equation)
    entire_equation_true = entire_equation_true[:-1]
    total = 0
    for _ in entire_equation_true:
        if _.isdigit():
            total += int(_)
    return entire_equation_true

summation_in_order('3+2+1')
summation_in_order('1+1+3+1+3')
summation_in_order('2')

line = input()
line = line.split("+")
line2 = []
for i in line:
    line2.append(int(i))
line2 = sorted(line2)
output = ""
for i in line2:
    output += str(i) + "+"
print(output[:len(output)-2])

s = str(input())
li = list(s.split("+"))
li2 = []
s2=""

for i in range(len(li)):
    li2.append(int(li[i]))
li2.sort(reverse=True)
for i in range(len(li2)):
    s2 = s2 + str(li2[i])+"+"
# s3 = s2[:(2*len(li2))]
print(s2)

s = input()
x1 = 0
x2 = 0
x3 = 0
for i in range(len(s)):
    if s[i] == "1":
        x1 += 1
    if s[i] == "2":
        x2 += 1
    if s[i] == "3":
        x3 += 1
if x1 != 0:
    print(1 , end = "")
    for i in range(x1 - 1):
        print("+1" , end = "")
    for i in range(x2):
        print("+2" , end = "")
    for i in range(x3):
        print("+3" , end = "")
elif x2 != 0:
    print(2 , end = "")
    for i in range(x2):
        print("+2" , end = "")
    for i in range(x3):
        print("+3" , end = "")
elif x3 != 0:
    print(3 , end = "")
    for i in range(x3):
        print("+3" , end = "")

#Helpful Maths

nums=str(raw_input())
data=nums.split("+")
data.sort()
print(data)
min=data[0]
string=""
for i in range (len(data)):
   if(i==len(data)-1):
       string +=data[i]
   else:
       string +=data[i]+"+"

print(string)
#valores=None
#valores[0]=min

def helpfulMaths(s):

	s = list(s)
	t = []

	for i in range(len(s)):
		if s[i] != '+':
			t.append(s[i])

	t = sorted(t)

	i = 0
	while i < len(t) - 1:
		t.insert(i + 1, '+')
		i += 2
	return t

s = raw_input()
helpfulMaths(s)

# print(helpfulMaths('1+1+3+2'))

s=list(input())
s.sort()
for i in s:
    if(i=='1' or i=='2' or i=='3'):
        print(i,"+")

terms = raw_input().split('+')
if len(terms) == 1:
    print terms
else:
    ints = []
    for term in terms:
        ints.append(int(term))
    ints.sort()
    result = ""

    for num in ints:
        if ints.index(num) + 1 == len(ints):
            print result
        else:
            result = result + str(num) + '+'

try:
    var = int(input("Please: "))
    plus = "+"
    new = []
    for i in var:
        new.append(i)
    kek = []
    discard = []
    for i in range(len(new)):
        if new[i] == "+":
            discard.append(new[i])
        else:
            kek.append(new[i])
    kek.sort()
    a = tuple(kek)
    print(plus.join(a))
except ValueError:
    print("huh")

w = str(input())
x = w.split("+")
x.sort
nw = ""
for n in x:
    nw += n + "+"
print(nw[:len(nw) -1])

lst = sorted([str(x) for x in input().split("+")])
#print(lst)
str1 = lst[0] + "+"
for i in range(1, (len(lst) - 1)):
    str1 = str1 + lst[i] + "+"
str1 = str1 + lst[len(lst) - 1]
print(str1)

list = input().split("+")
int_list = []
for _ in list:
    int_list.append(int(_))
sorted_int_list = sorted(int_list)
print(sorted_int_list)

data=raw_input()
if len(data)==1:
    print data
else:
    dat=data.split("+")
    s=sorted(dat)
    for i in range(len(s)-1):
        print s[i]+"+",
    print s[len(s)-1]

s=input()
a=[]
a.append(s[0])
for i in range(2,len(s)):
	if i%2==0:
		a.append(s[i])
a.sort()
for i in range(len(a)):
	print(a[i]+"+",end="")

import random

def del_nulls(arr):
	x = {}
	count, i = 0, -1
	while i < len(arr) - 1:
		i += 1
		count += 1
		if arr[i] in x:
			x[arr[i]] += 1
			arr.remove(arr[i])
			i -= 1
		else: x.update([(arr[i], 1)])
	return(x)

def qsort(arr, left, right):
	if (right - left > 1):
		a = random.randint(left, right)
		l, r = left, right
		while (l != r):
			while (arr[l] < arr[a]): l += 1
			while (arr[r] > arr[a]): r -= 1
			if (l > r):
				l, r = r, l
			else:
				arr[l], arr[r] = arr[r], arr[l]
		if (l != right):
			qsort(arr, left, l)
		if (r != left):
			qsort(arr, r, right)
	elif (arr[left] > arr[right]):
		arr[left], arr[right] = arr[right], arr[left]

arr = list(map(int, input().split('+')))

del_list = del_nulls(arr)
qsort(arr, 0, len(arr) - 1)
for i in range(0, len(arr)):
	for j in range(0, del_list[arr[i]]):
		if (not(i == 0 and j == 0)): print('+', end='')
		print(arr[i], end='')

s=list(input())
s.sort()
n=len(s)
for i in s:
    if(i=='1' or i=='2' or i=='3'):
        print(i,end="")
        if(i!=s):
            print("+")

s=input()
a=[]
a.append(s[0])
for i in range(2,len(s)):
    if i%2==0:
        a.append(s[i])
a.sort()
for i in range(len(a)):
    print(a[i]+"+")

def solve(string):
    nums = [str(i) for i in range(1, 4)]
    nums_to_sort = []

    for el in string:
        if nums.count(el) == 1:
            nums_to_sort.append(el)

    nums_to_sort.sort()
    for i in range(len(nums_to_sort)-1):
        nums_to_sort[i] += "+"

    for el in nums_to_sort:
        print(el, end="")

solve("3+3+3+2+1+2+1")

s = raw_input()
sn = []
j = 0
for i in range(0,len(s),2):
    sn.append(s[i])
    j += 1

k = 0
while k < len(sn):
    for i in range(k,len(sn)-1):
        if sn[i+1]< sn[i]:
            sn[i],sn[i+1] = sn[i+1], sn[i]
            k = i
    k += 1

sp = sn[0]
for i in range(1,len(sn)):
    sp = sp + '+' + sn[i]
print sp

def HelpfulMaths():
    n = str(input())
    n = n.replace("+","")
    n = list(n)
    n.sort()
    string = ""
    for i in n:
        string = string + str(i) + "+"
    if string.endswith('+'):
        string = string[:-1]
        return string

string = input()
newStr = []
for i in range(len(string)):
    if(string[i] != '+'):
        newStr.append(int(string[i]))
newStr.sort()
andron = len(string)
for i in newStr:
    if(i != len(newStr) - 1):
        print((str(i) + '+'), end="")
    else:
        print((str(i)), end="")

s = input()
l = s.split('+')
s1 = ""
add = 0
if l == sorted(l):
    for i in l:
        add += int(i)
    print(add)
else:
    for i in range(len(l)):
        s1 += (l[i] + '+')
    print(s1[0:-1])

def sort(alist):
    iteration = 0
    while iteration < len(alist):
        greatestindex = iteration
        i = iteration
        while i < len(alist):
            if (alist[i]) > (alist[greatestindex]):
                greatestindex = i
            i += 1
        temp = alist[greatestindex]
        alist[greatestindex] = alist[iteration]
        alist[iteration] = temp
        iteration += 1
    return alist

s = input()
s = s.split("+")
s = list(map(int, s))
s = sort(s)
printstring = ""
i = 0
while i < len(s):
    printstring += str(s[i])
    if i < len(s)-1:
        printstring += "+"
    i += 1

print(printstring)

a=input()
for i in range(0,len(a),2):
    for j in range(2, len(a)-2,2):
        if (a[i]>a[j]):
            temp=a[j]
            a=a.replace(a[i],a[j])
            a=a.replace(a[j],temp)
print(a)

inp = input()
nums = []
for symb in inp:
    if symb != '+':
        nums.append(int(symb))
nums.sort()
new_str = ''
counter = 0
for num in nums:
    if counter == 0:
        new_str += str(num)
    else:
        new_str+= '+' + str(num)
    counter+=1
print(nums)
print(new_str)

n=input()
l=len(n)
o=0
t=0
th=0
if(l==1):
    print(n)
else:
    for i in range(l):
        b=n[i]
        if(i%2==0):
            if(b=='1'):
                o+=1
            elif(b=='2'):
                t+=1
            elif(b=='3'):
                th+=1
    a=''
    for i in range(o):
        a=a+'1+'
    for i in range(t):
        a=a+'2+'
    for i in range(th-1):
        a=a+'3+'
    if(th!=0):
        a=a+'3'
    print(a)

string = raw_input().split('+')
# print(string)
if len(string) == 1:
    print (string)
else:

    string = '+'.join(sorted(list(string)))
    print(string)

o=input()
m=str.split(o)
m.sort()
print(m)

s = input()
mass = list(map(int, s.split("+")))

for j in range(len(mass)):
    minid = j
    for i in range(j+1, len(mass)):
        if mass[minid] > mass[i]:
            minid = i
    minim = mass[minid]
    mass[minid] = mass[j]
    mass[j] = minim
mass.reverse()

ns = str(mass[0])
for i in range(1, len(mass)):
    ts = str(mass[i])
    ns = ns + "+" + ts

print(s)

entrada = input().split()
lista = []
for i in range(len(entrada)):
    if(entrada[i] == "1" or entrada[i] == "2" or entrada[i] == "3"):
        lista.append(int(entrada[i]))
lista.sort()
saida = ""+entrada[0]
for i in range(1,len(lista)):
    saida += " + "+str(lista[i])
print(saida)

def quicksort(a, p, r):
    if (p >= r):
        return
    q = partition(a, p, r)
    quicksort(a, p, q)
    quicksort(a, q + 1, r)

def partition(a, p, r):
    q = (p + r) // 2
    for i in range(p, q):
        if a[i] > a[q]:
            a[i], a[q] = a[q], a[i]
            q = i
            break

    for i in range(q + 1, r):
        if a[q] > a[i]:
            a[i], a[q] = a[q], a[i]
            q = i

    return q

numbers = [int(i) for i in input().split('+')]
quicksort(numbers, 0, len(numbers))
print('+'.join([str(i) for i in numbers]))

line=raw_input()
p=list(line)
if len(p)>1:
    for i in range(0,len(p),2):
        if i>=(len(p)-1):
            i=0
        if p[i]>=p[i+2]:
            z=p[i]
            p[i]=p[i+2]
            p[i+2]=z

print "".join(p)

s=list(input())
s.sort()
n=len(s)
for i in s:
    if(i=='1' or i=='2' or i=='3'):
        print(i,end="")
        if(i!=s):
            print("+")

s = input()
if len(s)>1:
    for i in range(0,len(s)-1,2):
        if int(s[i])<=int(s[i+2]):
            print(s[i]+'+',end='')
        else:
            print(s[i+2]+'+',end='')

    print(s[i+2])
else:
    print(s)

op = list(map(int , input().split('+')))

op.sort()

print(''.join([str(i) if i % 2 == 0 else "+" for i in range((2 * len(op)) + 1)]))

a=input()
b=len(a)
if b==1:
    print(a)
else:
    l=[]
    for i in range(0,b,2):
        l.append(a[i])
    l=sorted(l)
    for i in range(len(l)):
        if l[i]==l[len(l)-1]:
            print(l[i],end='')
        else:
            print(l[i],end='+')

s = input()
l = s.split('+')
s1 = ""
add = 0
if l == sorted(l):
    for i in l:
        add += int(i)
    print(add)
else:
    l = sorted(l)
    for i in range(len(l)):
        s1 += (l[i] + '+')
    print(s1[0:-1])

def maths(a):
    a.split("+")
    a=sorted(a)
    s=""
    a=a[int(len(a)/2):]
    print(a)
    for i in a:
        s=s+str(i)+"+"
    return s[:len(s)-1]
a=input()
maths(a)

s = raw_input()
one = 0
two = 0
three =0
for char in s:
    if char == '1':
        one+=1
    elif char == '2':
        two+=1
    elif char == '3':
        three+=1
ones = '1+'*one
twos = '2+'*two
three = '3+'*three
ans = ones.rstrip('+')+'+'+twos.rstrip('+')
ans =ans.rstrip('+')+ '+'+three.rstrip('+')
ans = ans.rstrip('+')
i = 0
while True:
    if i<len(ans)-1 and ans[i]=='+':
        ans = ans[1:]
        i+=1
    else:
        break

print ans

xenia = input('')
new = []
final = ''
new.extend(xenia)
for i in new:
  if i == '+':
    new.remove(i)

new.sort()
for j in new:
  if new.index(j) == new.__len__() - 1:
    final += j
  else:
    final += j + '+'

print(final)