#include <bits/stdc++.h>
using namespace std;
#define M 8
#define N 6
// void merge(int*, int , int, int);
// void mergesort(int arr[], int low, int high){
// if(low>=high)
// return;
// int mid = (low+high)/2;
// mergesort(arr, low, mid);
// mergesort(arr, mid+1, high);
// merge(arr, low, mid, high);
// }
// void merge(int arr[], int low, int mid, int high){
// int n1 = mid-low+1, n2 = high-mid;
// int left[n1], right[n2];
// for(int i = 0; i<n1; i++)
// left[i] = arr[low+i];
// for(int j = 0; j<n2; j++)
// right[j] = arr[mid+1+j];
// int i = 0, j = 0, k = low;
// while(i<n1 && j<n2){
// if(left[i] > right[j]){
// arr[k++] = right[j++];
// }
// else
// arr[k++] = left[i++];
// }
// while(i < n1)
// arr[k++] = left[i++];
// while(j<n2)
// arr[k++] = right[j++];
// }
// void intersection(int a[], int b[]){
// int j=0, i=0;
// vector<int> v;
// while(i<M && j<N){
// if(a[i]==a[i-1] && i!=0){
// i++;
// continue;
// }
// if(a[i]<b[j]){
// i++;continue;
// }
// if(a[i]>b[j]){j++;
// continue;
// }
// if(a[i]==b[j]){
// v.push_back(a[i]);
// i++;j++;
// }
// }
// for(auto x: v)
// cout<<x<<" ";
// }
// void unions(int a[], int b[]){
// int i= 0, j = 0;
// vector<int> v;
// while(i<M && j<N){
// if(i!=0 && a[i]==a[i-1]){
// i++;continue;
// }
// if(b[j]==b[j-1] && j!=0){
// j++;continue;
// }
// if(a[i]<b[j]){
// v.push_back(a[i]);
// i++;
// }
// else if(a[i]>b[j]){
// v.push_back(b[i]);
// j++;
// }
// else{
// v.push_back(a[i]);
// i++; j++;
// }
// }
// while(i<M){
// v.push_back(a[i]);
// i++;
// }
// while(j<N){
// v.push_back(b[j]);
// j++;
// }
// for(auto x: v)
// cout<<x<<" ";
// }
void print(int arr[]){
for(int i = 0; i< M; i++)
cout<<arr[i]<<" ";
}
void swap(int *a, int *b){
int temp = *a;
*a = *b;
*b = temp;
}
int hoarspartition(int arr[],int l, int h){
// swap(&arr[index], &arr[0]);
int pivot = arr[l];
int i=l-1, j=h+1;
while(true){
do{
i++;
}while(arr[i]<pivot);
do{
j--;
}while(arr[j]>pivot);
if(i>=j)
return j;
swap(&arr[i], &arr[j]);
}
}
void quicksort(int arr[], int l, int h){
if(l<h){
int p = hoarspartition(arr, l, h);
quicksort(arr, l, p);
quicksort(arr, p+1, h);
}
}
// void lumotopartion(int arr[], int index){
// swap(&arr[index], &arr[M-1]);
// int pivot = arr[M-1];
// int i = -1;
// for(int j= 0; j<M; j++){
// if(arr[j]<pivot){
// i++;
// swap(&arr[i], &arr[j]);
// }
// }
// swap(&arr[i+1], &arr[M-1]);
// }
int main(){
int arr[M];
for(int i = 0; i< M; i++){
cin>>arr[i];
}
// int index;
//cin>>index;
// lumotopartion(arr, index);
// hoarspartition(arr, index)<<endl;
// mergesort(arr, 0, N-1);
quicksort(arr, 0, M-1);
print(arr);
// unions(arr, b);
}