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 "bits/stdc++.h"
#include <gmp.h>
using namespace std;

typedef long long ll;
typedef unsigned long long ull;
typedef vector<int> veci;
typedef vector<ll> vecll;
typedef vector<string> vecs;
template<class T,class U> using Hash=unordered_map<T,U>;

#define REP(i, a, n) for(ll i = a; i < (ll)n; i++)
#define RREP(i, a, n) for(ll i = n-1; i >= (ll)a; i--)
#define rep(i, n) REP(i, 0, n)
#define rrep(i, n) RREP(i, 0, n)
#define MD 1000000007

template<class T> T read(){T a;cin >> a;return a;}
template<class T> void read(T& a){cin >> a;}
template<class T, class ...Args> void read(T& a, Args&... args){cin >> a; read(args...);} 
template<class T> void rarr(T a, int n){for(int i = 0; i < n; i++) {cin >> a[i];}}
template<char c = ' ',class T> void write(T a){cout << setprecision(12) << a << endl;}
template<char c = ' ',class T,class ...Args> void write(T a, Args... args){cout << setprecision(12) << a << c; write<c>(args...);}
template<class T> void warr(vector<T> a, const char* c = " "){cout << a[0];for(int i = 1; i < (int)a.size(); i++)cout << c << a[i];cout << endl;;}
template<class T> void warr(T a, int n, const char* c = " "){cout << a[0];for(int i = 1; i < n; i++)cout << c << a[i];cout << endl;}
void split(string s, string delim, veci& result){result.clear();string::size_type pos = 0;while(pos != string::npos){string::size_type p = s.find(delim, pos);if(p == string::npos){result.push_back(atoi(s.substr(pos).data()));break;}else {result.push_back(atoi(s.substr(pos, p - pos).data()));}pos = p + delim.size();}}
void split(string s, string delim, vecs& result){result.clear();string::size_type pos = 0;while(pos != string::npos){string::size_type p = s.find(delim, pos);if(p == string::npos){result.push_back(s.substr(pos));break;}else {result.push_back(s.substr(pos, p - pos));}pos = p + delim.size();}}
ll gcd(ll a, ll b){while(true){ll k = a % b;if(k == 0)return b;a = b;b = k;}}
ll comb(ll n, ll m){ll p=1;m=min(m,n-m);for(ll i=1;i<=m;i++){p*=n-i+1;p/=i;}return p;}

int main(void)
{
    int a[20];
    rep(i,10)read(a[i]);
    sort(a,a+10);
    rep(i,3)write(a[9-i]);
    return 0;
}

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;

    return 0;
}

C++: #include<stdio.h>
int main(void){
  int h[10],i=0,j=0,max,t;
  do{
    scanf("%d",&h[i]);
      i++;
      }while(i<10);
  for(i=0;i<3;i++){
    max=0;
    for(j=i;j<10;j++){
      if(max<h[j]){
	max=h[j];
	t=j;
      }
    }
    h[t]=h[i];
    h[i]=max;

    printf("%d\n",h[i]);
  }
  return 0;
  }

C++: #include<stdio.h>
#include<algorithm>
using namespace std;
int main()
{
int i,j,arr[10],n;
scanf("%d",&n);

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

C++: #include<iostream>
using namespace std;
int main(){
	int high[3]={0};
	int mount;
	for(int i=1;i<=10;i++){
		cin>>mount;
		if(mount>high[0]){high[2]=high[1];high[1]=high[0];high[0]=mount;}
		else if(mount>high[1]){high[2]=high[1];high[1]=mount;}
		else if(mount>high[2]){high[2]=mount;}
	}
	cout<<high[0]<<endl<<high[1]<<endl<<high[2]<<endl;
}

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

using namespace std;
priority_queue<int> Q;

int H;
int main(){
  for(int i= 0;i < 10;i++){
     scanf("%d",&H);
     Q.push(H);
  }
  for(int i= 0;i < 3;i++){
    cout << Q.top() <<endl;
  Q.pop();
  }
  return 0;
}

C++: #include<bits/stdc++.h>
#define ll long long int
#define FOR(i,a,b) for(ll i=(ll)(a);i<(ll)(b);i++)
#define REP(i,n) FOR(i,0,n)
#define REP1(i,n) FOR(i,1,n)
using namespace std;
 /*temp*/

int main(){
    int a[10];
    REP1(i,10){
        cin >> a[i];
    }
    sort(a, a+10);
    cout << a[9] << '\n'
         << a[8] << '\n'
         << a[7] << '\n';
}

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

using namespace std;

int main() {
    priority_queue<int> pq;

    for (int i = 0; i < 10; ++i) {
        int height;
        cin >> height;
        pq.emplace(height);
    }


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

    std::cout << '\n';

    return 0;
}

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

int main(){
	int height[10] = {0};

	for(int i = 0; i < 10; i++){
		cin >> height[i];
	}
	
	int temp = 0;
	for(int i = 0; i < 3; i++){
		for(int j = 0; j < 10-i; j++){
			if(height[j] > height[j+1]){
				temp = height[j];
				height[j] = height[j+1];
				height[j+1] = temp;
			}
		}
	}
	
	cout << height[9] << endl;
	cout << height[8] << endl;
	cout << height[7] << endl;
	
	return 0;
}

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

int main() {
    vector<int> v;
    for(int i = 0; i < 10; i++) {
        int x;
        cin >> x;
        v.push_back(x);
    }
    sort(v.begin(), v.end());
    string str;
    for(int i = 9; i >6; i--) {
        str += to_string(v[i]);
        str += "\n";
    }
    str.pop_back();
    cout << str << endl;
}

C++: #include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main(){
	int a,i=1;
	vector<int> h;
	while(cin >>a ){
		h.push_back(a);
		i++;
		if(i==11)
		break;
	}
	sort(h.begin(),h.end());
	reverse(h.begin(),h.end());
	for(int i=0;i<3;i++)
	cout << h[i]<<endl;

}

C++: #include<stdio.h>
int main(){
	int i,j,tmp;
	int Mt[10];
	for(i=0;i<10;i++){
		scanf("%d",&Mt[i]);
	}
	for(;;){
		for(i=0;i<10;i++){
			for(j=i+1;j<10;j++){
				if(Mt[i]>Mt[j]){
					tmp=Mt[i];
					Mt[i]=Mt[j];
					Mt[j]=tmp;
				}
			}
		}
		if(Mt[0]<=Mt[1]){break;}
	}
		for(i=9;i>=7;i--){printf("%d\n",Mt[i]);}
	
	return 0;
}

C++:  #include <bits/stdc++.h>
#ifdef dbg
#include "./printer.hpp"
#else
#define dump(x) void(0)
#endif

using namespace std;
#define ll long long
inline long  toInt(string s) {long  v; istringstream sin(s);sin>>v;return v;}
template<class T> inline string toString(T x) {ostringstream sout;sout<<x;return sout.str();}
#define INF 100000

int main(){
  ios_base::sync_with_stdio(0);

  vector<ll> a;
  ll e;
  while(scanf(" %d", &e) != EOF){
    a.push_back(e);
  }
  sort(a.begin(),a.end(),[] (ll a, ll b) {return a > b;});
  cout << a[0] << '\n' << a[1] << '\n' << a[2] << '\n';
  
  return 0;

}

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

int main(void)
{
    vector <int> a;
    int b;

    for (int i = 0; i < 10; i++){
    cin>>b;
a.push_back(b);
}

for (int i = 0; i < 100000; i++){
	for (int j = 0; j < 100; j++){
		b = 0;
	}
}

sort(a.begin(), a.end());
cout << a[9] << endl << a[8] << endl << a[7] << endl;

return 0;
}

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

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

C++: #include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
    cin.tie(0);
    ios::sync_with_stdio(false);
    vector<int> v;
    int a;
    while (cin >> a) {
        v.push_back(a);
    }
    sort(v.begin(), v.end(), [](const int& a, const int& b) {return a > b;});
    for (unsigned i = 0; i < v.size() && i < 3; i++)
        cout << v.at(i) << "\n";
}