2+2+1+1+3
 3+1
 1+3
 2+2+1+1+1+3+1+1+3+3+2+3+1+3+1+1+3+1+1+2+2+2+2+1+2+1+2+1+1+1+3+1+3+2+3+2+3+3+1+1+1+2+3+2+1+3+1+3+2+2
 2+2
 1+1
 2+3+3+1+2+2+2+1+1+2+1+3+2+2+3+3+2+2+3+3+3+1+1+1+3+3+3+2+1+3+2+3+2+1+1+3+3+3+1+2+2+1+2+2+1+2+1+3+1+1
 1
 1+2+1+2+2+2+2+1+3+3
 2+3
 1+2
 3+2
 3+3
 2+1+2+2+1+3+2+3+1+1+2+1+2+2+3+1+1+3+3+3+2+2+3+2+2+2+1+2+1+2+3+2+2+2+1+3+1+3+3+3+1+2+1+2+2+2+2+3+1+1
 2+1+2+2+2+3+1+3+1+2
 2+1
 3+2+3+3+2+2+1+2+1+2+3+1+2+3+2+3+2+1+2+2+1+1+2+2+3+2+1+3+1+1+3+2+2+2+2+3+3+2+2+3+3+1+1+2+3+3+2+3+3+3
 3

1+1+2+2+3
 1+3
 1+3
 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+3+3+3+3+3+3+3+3+3+3+3+3+3+3
 2+2
 1+1
 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3
 1
 1+1+1+2+2+2+2+2+3+3
 2+3
 1+2
 2+3
 3+3
 1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+3+3+3+3+3+3+3+3+3+3+3+3+3
 1+1+1+2+2+2+2+2+3+3
 1+2
 1+1+1+1+1+1+1+1+1+1+1+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3+3
 3

# Generated by powerful Codeforces Tool
# You can download the binary file in here https://github.com/xalanq/cf-tool (Windows, macOS, Linux)
# Author: gamyjo
# Time: 2021-01-16 02:15:47
#

import os
import sys
from io import BytesIO, IOBase

import math
import itertools
import cmath
import time
import collections

start_time = time.time()


##########################################################################
################# ---- THE ACTUAL CODE STARTS BELOW ---- #################

def solve():
    a = list(map(int,sys.stdin.readline().rstrip('\r\n').split('+')))
    a.sort()
    b = [str(x) for x in a]
    c = '+'.join(b)
    ps(c)





################## ---- THE ACTUAL CODE ENDS ABOVE ---- ##################
##########################################################################

def main():
    global tt
    if not ONLINE_JUDGE:
        sys.stdin = open("input.txt","r")
        sys.stdout = open("output.txt","w")
    t = 1
    #t = inn()
    for tt in range(1,t + 1):
        solve()
    if not ONLINE_JUDGE:
        print("Time Elapsed :",time.time() - start_time,"seconds")
        sys.stdout.close()


# region fastio 
BUFSIZE = 8192  
class FastIO(IOBase):   
    newlines = 0    
    def __init__(self, file):   
        self._fd = file.fileno()    
        self.buffer = BytesIO() 
        self.writable = "x" in file.mode or "r" not in file.mode    
        self.write = self.buffer.write if self.writable else None   
    def read(self): 
        while True: 
            b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE)) 
            if not b:   
                break   
            ptr = self.buffer.tell()    
            self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr) 
        self.newlines = 0   
        return self.buffer.read()   
    def readline(self): 
        while self.newlines == 0:   
            b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE)) 
            self.newlines = b.count(b"\n") + (not b)    
            ptr = self.buffer.tell()    
            self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr) 
        self.newlines -= 1  
        return self.buffer.readline()   
    def flush(self):    
        if self.writable:   
            os.write(self._fd, self.buffer.getvalue())  
            self.buffer.truncate(0), self.buffer.seek(0)    
class IOWrapper(IOBase):    
    def __init__(self, file):   
        self.buffer = FastIO(file)  
        self.flush = self.buffer.flush  
        self.writable = self.buffer.writable    
        self.write = lambda s: self.buffer.write(s.encode("ascii")) 
        self.read = lambda: self.buffer.read().decode("ascii")  
        self.readline = lambda: self.buffer.readline().decode("ascii")  

# endregion 


#--------------------------- CONSTANTS ----------------------------#
mod=(10**9)+7
pi=3.14159265358979323846264338327950


#---------------------- USER DEFINED IO FUNCTIONS ------------------------#    
def inn():   #int(input())
    return int(sys.stdin.readline())

def ins():   #input()
    return sys.stdin.readline()

def inmn():   #map(int(input()))
    return map(int,sys.stdin.readline().split())

def ina():  #list(map(int,input().split()))
    return list(map(int,sys.stdin.readline().split()))

def ps(ans): #print(x)
    return sys.stdout.write(str(ans)+"\n")

def pa(ans): #print(*x)
    return sys.stdout.write(" ".join(map(str,ans)) + "\n")


#------------------ USER DEFINED PROGRAMMING FUNCTIONS ------------------#
def counter(a):
    q = [0] * max(a)
    for i in range(len(a)):
        q[a[i] - 1] = q[a[i] - 1] + 1
    return(q)
 
def counter_elements(a):
    q = dict()
    for i in range(len(a)):
        if a[i] not in q:
            q[a[i]] = 0
        q[a[i]] = q[a[i]] + 1
    return(q)
 
def string_counter(a):
    q = [0] * 26
    for i in range(len(a)):
        q[ord(a[i]) - 97] = q[ord(a[i]) - 97] + 1
    return(q)
 
def factorial(n,m = 1000000007):
    q = 1
    for i in range(n):
        q = (q * (i + 1)) % m
    return(q)
 
def factors(n):
    q = []
    for i in range(1,int(n ** 0.5) + 1):
        if n % i == 0: q.append(i); q.append(n // i)
    return(list(sorted(list(set(q)))))
 
def prime_factors(n):
    q = []
    while n % 2 == 0: q.append(2); n = n // 2
    for i in range(3,int(n ** 0.5) + 1,2):
        while n % i == 0: q.append(i); n = n // i
    if n > 2: q.append(n)
    return(list(sorted(q)))
 
def transpose(a):
    n,m = len(a),len(a[0])
    b = [[0] * n for i in range(m)]
    for i in range(m): 
        for j in range(n): 
            b[i][j] = a[j][i]
    return(b)
 
def is_power_two(x):
    return (x and (not(x & (x - 1))))
 
def ceil(a, b):
    return -(-a // b)
 
def seive(n):
    a = [1]
    prime = [True for i in range(n+1)] 
    p = 2
    while (p * p <= n): 
        if (prime[p] == True): 
            for i in range(p ** 2,n + 1, p): 
                prime[i] = False
        p = p + 1
    for p in range(2,n + 1): 
        if prime[p]: 
            a.append(p)
    return(a)

#-----------------------------------------------------------------------#   

ONLINE_JUDGE = __debug__ # to use file IO, use not __debug__ instead    
if ONLINE_JUDGE:    
    sys.stdin, sys.stdout = IOWrapper(sys.stdin), IOWrapper(sys.stdout) 

if __name__ == "__main__":  
    main()