AA = raw_input().strip().split(' ') A = [] ###############初始化大堆############### def fixUp(A): k = len(A) - 1 while k >= 0 and A[k // 2] < A[k]: A[k // 2], A[k] = A[k],A[k // 2] k = k // 2 for num in AA: A.append(int(num)) fixUp(A) #######################排序调整过程########### def fixDown(A): A.insert(0,-1) N = len(A) -1 k = 1 while 2*k <= N: j = 2 * k if j < N and A[j] < A[j + 1]: j = j + 1 if A[k] < A[j]: A[k],A[j ] = A[j],A[k] k = j else: break A.remove(-1) print A def delMaxElem(A): maxElem = A[0] N = len(A) if N <= 0: print "No array" if N == 1: return maxElem else: A[0] = A.pop() fixDown(A) return maxElem ###########sort############## result = [] for i in range(len(A)): result.append(delMaxElem(A)) print result