Go: package main

import (
	"bufio"
	"fmt"
	"os"
	"sort"
	"strconv"
)

var rdr = bufio.NewReaderSize(os.Stdin, 1000000)

func readLine() string {
	buf := make([]byte, 0, 1000000)
	for {
		l, p, e := rdr.ReadLine()
		if e != nil {
			panic(e)
		}
		buf = append(buf, l...)
		if !p {
			break
		}
	}
	return string(buf)
}

func toInt(str string) int {
	n, _ := strconv.Atoi(str)
	return n
}

func main() {
	lst := make([]int, 0)
	for i := 0; i < 10; i++ {
		lst = append(lst, toInt(readLine()))
	}
	sort.Ints(lst)
	for i := 9; i > 6; i-- {
		fmt.Println(lst[i])
	}
}

C++: #include<iostream>
using namespace std;

int main(){
    int a[10]={0};
    int temp;
    for(int i=0;i<10;i++){
        cin>>a[i];
    }
    int i=0;
    for(int j=0;j<=8;j++)
        for(i=0;i<=8;i++)
            if(a[i]<a[i+1]){
                temp=a[i];
                a[i]=a[i+1];
                a[i+1]=temp;
                }
    cout<<a[0]<<endl;
    cout<<a[1]<<endl;
    cout<<a[2]<<endl;        
    return 0;
}

C++: #include <iostream>
#include <array>
#include <functional>



using namespace std;

int main(){
	array<int,10> list;
	for (int i = 0; i < 10; i++){
		cin >> list[i];
	}
	sort(list.begin(), list.end(),greater<int>());
	for (int i = 0; i < 3; i++){
		cout << list[i] << endl;
	}
	return 0;
}

C++: #include <iostream>
#include<algorithm>

using namespace std;

int main()
{
	unsigned short maxheight[10] = {0};
	for (int i = 0; i < 10; i++)
		cin >> maxheight[i];
	sort(maxheight, maxheight + 10);
	for (int i = 0; i < 3; i++)
		cout << maxheight[9-i] << endl;
	return 0;
}

C++: #include <iostream>
#include <algorithm>
#include <stdio.h>
#define pri(dt) printf("%d\n",dt)
#define RPE0(loopTotal)  for(int i=0;i<=(loopTotal);i++)
#define RPE(loopTotal)  for(int i=1;i<=(loopTotal);i++)

int data[9];

using namespace std;
int main(void){
    
    RPE0(9) scanf("%d",&data[i]);
    sort(data,data+9,greater<int>());
    RPE0(2) pri(data[i]);

}

C++: #include <iostream>
#include <algorithm>
using namespace std;

int main(){
	int h[10];
	for(int i = 0; i < 10; i++)cin >> h[i];
	sort(h, h + 10);
	cout << h[9] << endl << h[8] << endl << h[7] << endl;
}

C++: 
#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>

using namespace std;

int main(void) 
{
    int i;
    int hs[10];

    for (i = 0; i < 10; i++) {
        cin >> hs[i];
    }

    sort(hs, hs+10, greater<int>());

    for (i = 0; i < 3; i++) {
        cout << hs[i] << "\n";
    }

    return 0;
}

C++: #include <iostream>
#include <iterator>
#include <algorithm>
#include <vector>

int main()
{
	std::vector<int> input;
	std::copy(
		std::istream_iterator<int>(std::cin),
		std::istream_iterator<int>(),
		std::back_inserter(input));

	std::partial_sort(input.begin(), input.begin() + 3, input.end(), std::greater<int>());

	for (std::vector<int>::const_iterator i = input.begin(); i != input.begin() + 3; ++i) {
		std::cout << *i << "\n";
	}
	return 0;
}

C++: #include<bits/stdc++.h>

using namespace std;

int main()
{
    int a[100];
    
    for(int i=0 ; i<10 ; i++)
        cin >> a[i];
    
    sort(a,a+10);
    
    for(int i=9 ; i>6 ; i--)
        cout << a[i] << endl;
    
    return 0;
}

C++: #include <iostream>
#include <queue>

using namespace std;

int main(){

	priority_queue<int> pq;
	for(int i = 0; i < 10; i++){
		int tmp;
		cin >> tmp;
		pq.push(tmp);
	}

	for(int i = 0; i < 3; i++){
		cout << pq.top() << endl;
		pq.pop();
	}

	int x;
	cin >> x;

	return 0;
}

C++: #include <iostream>
using namespace std;

int main(void){
    int high[10];
	for(int i=0;i<10;i++){
		cin >> high[i];
	}
    
	for(int i=0;i<9;i++){
		int max_index = i;
		for(int j=i+1;j<10;j++){
			if(high[max_index] < high[j]){
				max_index = j;
			}
		}
		swap(high[i],high[max_index]);
	}
	
	for(int i=0;i<3;i++){
	    cout << high[i] <<endl;
	}
}

C++: #include<iostream>
using namespace std;
int main(){
    int work[10];
    int temp;
    for(int i = 0; i < 10; i++){
        cin >> work[i];
    }
    for(int i = 0; i < 9; i++){
        for(int j = i + 1; j <= 9; j++){
            if(work[i] < work[j]){
                temp = work[i];
                work[i] = work[j];
                work[j] = temp;
            }
        }
    }
    for(int i = 0; i < 3; i++){
        cout << work[i] << endl;
    }
    return 0;
}

C++: #include <iostream>
using namespace std;
void swap_(int* a,int* b){
	int temp=*a;*a=*b;*b=temp;
}
int main(){
	int hight[10];
	for(int i=0;i<10;i++) cin >> hight[i];
	for(int i=1;i<=3;i++){
		for(int j=9;j>=i;j--){
			if(hight[j-1]<hight[j]) swap_(&hight[j],&hight[j-1]);
		};};
	for(int i=0;i<3;i++) cout << hight[i] << '\n' ;
}

C++: #include<stdio.h>

int main(){
	int i,j,k,nb=0,low=9,height[10];
	for(i=0;i<10;i++)
		scanf("%d",&height[i]);
	for(i=0;i<3;i++){
		for(j=0;j<10;j++){
			for(k=0;k<10;k++){
				if(height[j]>height[k])
					nb++;
			}
			if(nb==low){
				printf("%d\n",height[j]);
				low--;
				break;
			}
			nb=0;
		}
	}

	return 0;
}

C++: #include <stdio.h>
#include <algorithm>
using namespace std;


int main(){
	int i,h[10];
	for(i = 0;i < 10;i++) scanf("%d",&h[i]);
	sort(h,h + 10);
	for(i = 0;i < 3;i++) printf("%d\n",h[i]);
	return 0;
}

C++: i = 0
while i < 10 do
 a[i] = gets
 i = i + 1
end

b = a.map(&:to_i).sort
puts b[0]
puts b[1]
puts b[2]

C++: #include <iostream>
#include <algorithm>
using namespace std;

int main(void) {
    int height[10];
    
    for(int i = 0; i < 10; ++i) {
        cout << "No." << i + 1 << " : " << flush;
        cin >> height[i];
    }
    sort(height, height + 10);
    
    for(int i = 0; i < 3; ++i) {
        cout << height[9 - i] << endl;
    }
}

C++: #include <iostream>
#include <algorithm>

using namespace std;

int main() {
	int i, m[10];

	for(i=0; i<10; i++) {
		while(1) {
			cin >> m[i];
			if(m[i]>0&&m[i]<10001)
				break;
		}
	}

	sort(m, m+10);

	for(i=9; i>6; i--) {
		cout << m[i] << endl;
	}
}

C++: #include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
  
int main(){
    vector<int> h(10);
    int in;
    for(int i=0;i<10;i++){
        cin>>in;
        h[i]=in;
    }
    sort(h.begin(),h.end());
    cout<<h[9]<<endl;cout<<h[8]<<endl;cout<<h[7]<<endl;
    return 0;
}

C++: #include <stdio.h>
#include <algorithm>
using namespace std;
int main()
{
    int i,h[10],n;
        for(i=0; i<10; i++)
        {
            scanf("%d", &n);
            h[i]=n;
        }
        sort(h,h+10);
        for(i=9; i>=7; i--)
        {
            printf("%d\n",h[i]);
        }

    return 0;
}

C++: #include <cstdio>
#include <cstdlib>
#include <cstdint>
#include <cstring>
#include <cctype>
#include <iostream>
#include <sstream>
#include <vector>
#include <list>
#include <deque>
#include <map>
#include <set>
#include <stack>
#include <queue>
#include <unordered_map>
#include <unordered_set>
#include <algorithm>
#include <functional>
using namespace std;
typedef pair<int, int> pii;
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef long long ll;
const double PI = 3.141592653589793238462643383279502884L;
const int LARGE_INT = 1000000007;
#define all(c) (c).begin(), (c).end()
#define rall(c) (c).rbegin(), (c).rend()
#define tr(c, i) for(auto i = (c).begin(); i != (c).end(); i++)
#define rtr(c, i) for(auto i = (c).rbegin(); i != (c).rend(); i++)
#define repfn(i,a,cont,next) \
  for(auto i = (a); [=](){return(cont);}(); i = [=](){return(next);}())
#define repby(i,a,b,s) repfn(i,a,i<b,i+s)
#define repab(i,a,b) repby(i,a,b,1)
#define rep(i,b) repab(i,0,b)
#define pb push_back
#define sz(c) int((c).size())

int main(int argc, char **argv)
{
  vi v;
  int tmp;
  while (!cin.eof()) {
    cin >> tmp;
    v.pb(tmp);
  }
  sort(rall(v));
  rep(i, 3) {
    cout << v[i] << endl;
  }

  return 0;
}