#include <iostream>
#include <vector>
#include <limits.h>

void fixup(std::vector<int> &h){
	int j, k, v, n;
	bool heap;

	n = h.size() - 1;
	for(int i = n/2; i >= 1; i--){
		k = i;
		v = h[k];
		heap = false;
		while(!heap && 2*k <= n){
			j = 2*k;
			if(j < n)
				if(h[j] < h[j + 1])
					j++;
			if(v >= h[j])
				heap = true;
			else{
				h[k] = h[j];
				k = j;
			}
		}
		h[k] = v;
	}
}

int main(){
	int size = 7;
	int in;
	std::vector<int> v(size);
	
	v[0] = INT_MAX;
	for(int i = 1; i <= size; i++){
		std::cin >> v[i];
	}

	for(int i = 1; i < size; i++){
		std::cout << v[i] << " ";
	}
	
	fixup(v);
	
	std::cout << std::endl;
	for(int i = 1; i < size; i++){
		std::cout << v[i] << " ";
	}
}