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>
#include <algorithm>
#include <string>
#include <vector>
#include <queue>
#include <bitset>
#include <set>
#include <queue>

#define rep(i,n) for(int i=0;i<n;i++)
#define REP(i,b,n) for(int i=b;i<n;i++)

const float PI = 3.1415926;
static const int INFTY = (1<<30);

using namespace std;

typedef long long ll;
typedef long double ld;

int main() {
  vector<int> v;
  int n;
  rep(i,10){
    cin >> n;
    v.push_back(n);
  }
  sort(v.begin(), v.end(), greater<int>());
  cout << v[0] << endl;
  cout << v[1] << endl;
  cout << v[2] << endl;
  

  return 0;
}

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

int main()
{
	array<int, 10> height;
	int i = 0;

	while ( i < 10 )
	{
		cin >> height[i];
		i = i + 1;
	}

	
	sort( height.begin(), height.end() );
	for ( i = 9 ; i > 6; i = i - 1 )
	{
		cout << height[i] << endl;
	}

	return 0;
}

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

int main(){
  int h;
  vector< int > most;
  while(cin >> h, h){
    most.push_back(h);
  }
  sort(most.rbegin(),most.rend());
  for(int i = 0 ; i < 3 ; i++ ){
    cout << most[i] << endl;
  }
}

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

using namespace std;

int main() {
    array<int,10> ar;
    for(int i=0;i<10;i++){
        int height;
        cin >> height;
        ar[i]=height;
        }
    sort(ar.begin(),ar.end());
    for(int j=0;j<3;j++){
        cout << ar[9-j] << endl;
        
    }
}

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

int main(){

	int hill[15];

	for(int j=0;j<=8;j++){
		cin>>hill[j];
	}

	int key;
	int flag;
	
	sort(hill,hill+10);

	//sort
	/*for(key=9;key>=0;key--){

		for(int i=0;i<=key;i++){
			if(hill[i]>hill[i+1]){
				flag=hill[i];hill[i]=hill[i+1];hill[i+1]=flag;
			}
		}

	}*/

	cout<<hill[9]<<"\n"<<hill[8]<<"\n"<<hill[7]<<endl;

	return 0;

}

C++: /* All men have limits. They learn what they are and learn
   not to exceed them, I ignore mine. -Batman           */
#include <bits/stdc++.h>
//#include <iostream>
//#include <vector>
//#include <Windows.h>
using namespace std;

int main(){
int n;
vector<int> f;
while(cin>>n){
	f.push_back(n);
	
}
sort(f.begin(),f.end(), greater<int>());
cout<<f[0]<<endl<<f[1]<<endl<<f[2]<<endl;
	
	return 0;
}

C++: #include<iostream>
using namespace std;
main()
{ int x[10],t[3];
  int  s=0;
  for(int i=0;i<0;i++){
    cin>>x[i];
  }

  for(int k=0;k<3;k++){
    for(int j=0;j<10;j++){
      if(t[k]<x[j]){
        s=t[k];
        t[k]=x[j];
        x[j]=s;
       }
     }
  }
  for(int e=0;e<3;e++){
    cout<<t[e]<<endl;
  }
return 0;
}

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

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

using namespace std;

#define MAX  10000

int nData[MAX];
int nData1[MAX];

int main()
{
	int i,j,x;

	x=0;
    for(i=0;i<10;i++)
	{
	    cin >> nData[i];
	}
	sort(nData,nData+10);
	nData1[x]=nData[9];
	for(i=10-2;i>=0;i--)
	{
		if(nData1[x]!=nData[i])
		{
			x++;
			nData1[x]=nData[i];
		}
		if(x>=2)
			break;
	}
	for(j=0;j<3;j++)
		cout << nData1[j] << endl;
	return 0;
}

C++: #include<iostream>

using namespace std;
 
int main(){
  int x[10],tmp,i,j;

  for(i=0; i<10; ++i)
    cin >> x[i];

  for(i=0; i<10; ++i){
    for(j=0; j<10; ++j){
      if(x[i] < x[j]){
	tmp = x[i];
	x[i] = x[j];
	x[j] = tmp;
      }
    }
  }

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

    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 = 9;i > 6;i--) printf("%d\n",h[i]);
	return 0;
}

C++: 
#include <iostream>

using namespace std;

 int  main(){
     
int mnt[10];
int i;
int max;

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

sort(mnt,mnt+10);
reverse(mnt,mnt+10);
for(i=0;i<3;i++) cout<<mnt[i]<<endl;

  
 
   return 0;
}

C++: 
//include
//------------------------------------------
#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <queue>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <string>
#include <cstring>
#include <ctime>


using namespace std;

//conversion
//------------------------------------------
inline int toInt(string s) { int v; istringstream sin(s); sin >> v; return v; }
template<class T> inline string toString(T x) { ostringstream sout; sout << x; return sout.str(); }

//math
//-------------------------------------------
template<class T> inline T sqr(T x) { return x*x; }

//typedef
//------------------------------------------
typedef vector<int> VI;
typedef vector<VI> VVI;
typedef vector<string> VS;
typedef pair<int, int> PII;
typedef long long LL;

//container util
//------------------------------------------
#define ALL(a)  (a).begin(),(a).end()
#define RALL(a) (a).rbegin(), (a).rend()
#define PB push_back
#define MP make_pair
#define SZ(a) int((a).size())
#define EACH(i,c) for(typeof((c).begin()) i=(c).begin(); i!=(c).end(); ++i)
#define EXIST(s,e) ((s).find(e)!=(s).end())
#define EXISTch(s,c) ((((s).find_first_of(c)) != std::string::npos)? 1 : 0)//cがあれば1 if(1)
#define SORT(c) sort((c).begin(),(c).end())

//repetition
//------------------------------------------
#define FOR(i,a,b) for(int i=(a);i<(b);++i)
#define rep(i,n)  FOR(i,0,n)
#define loop(n) FOR(i,0,n)
#define rrep(i,a,b) for(int i=(a);i>=(b);--i)
//constant
//--------------------------------------------
const double EPS = 1e-10;
const double PI = acos(-1.0);
const int INF = (int)1000000007;
const LL MOD = (LL)1000000007;//10^9+7
const LL INF2 = (LL)100000000000000000;//10^18

int main() {
	vector<int> h(10);

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

	sort(h.begin(), h.end(), greater<int>());

	for (int i = 0; i < 3; i++) {
		cout << h[i] << endl;
	}

	return 0;
}

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

int main(){
    int tinggi[10000];
    int i, j, temp;

    for(i=0; i<10; i++){
        cin>>tinggi[i];
    }
    for(j=0; j<10; j++){
            for(i=1; i<10; i++){
                if(tinggi[i] > tinggi[i-1]){
                    temp = tinggi[i];
                    tinggi[i] = tinggi[i-1];
                    tinggi[i-1] = temp;
                }
        }
    }
    for(i=0; i<3; i++){
        cout<<tinggi[i]<<endl;
    }

    return 0;
}

C++: #include<cstdio>
#include<algorithm>
 
using namespace std;
 
int main() {
    int m[10];
 
    for (int i = 0; i < 10; i++)scanf("%d", &m[i]);
 
    stable_sort(m, m + 10);
     
    for(int i=9;i>6;i--)printf("%d\n", m[i]);
 
    return 0;
}

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

int main(){

	int mt[10];
	int i;
	
	for(i=0;i<10;i++){
		std::cin >> mt[i];
	}
	
	std::sort(mt,mt+10,std::greater<int>());
	
	for(i=0;i<3;i++){
		std::cout << mt[i] << std::endl;
	}
}

C++: #include<iostream>
#include<algorithm>
using namespace std;
int a[10];
int main(){
	for (int i = 0; i < 10;i++){
		cin >> a[i];
	}
	sort(a[0], a[9]);
	cout << a[0] << a[1] << a[2] << endl;
	return 0;
}