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>
using namespace std;
int a[15];

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

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

int main()
{
    int heights[10];
    for(int i=0;i<10;i++)
    {
        cin>>heights[i];
    }
    sort(0,9);
    cout<<"height of 1st mountain "<<heights[9]<<endl;
    cout<<"height of 2nd mountain "<<heights[8]<<endl;
    cout<<"height of 3rd mountain "<<heights[7]<<endl;
    
    
}

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

using namespace std;

typedef long long int ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;

const int INF = 1000000000;
const ll LINF = (ll) 4000000000000000000;
const ll MOD = (ll) 1000000007;
const double PI = acos(1.0);
const int limit = 100010;

#define REP(i,m,n) for(ll i = m; i < (ll)(n); i++)
#define rep(i,n) REP(i, 0, n)
#define MP make_pair
#define YES(n) cout << ((n) ? "YES" : "NO") << endl
#define Yes(n) cout << ((n) ? "Yes" : "No") << endl
#define Possible(n) cout << ((n) ? "Possible" : "Impossible") << endl
#define NP(v) next_permutation(v.begin(),v.end())
#define smaller_queue  priority_queue <ll, vector<ll>, greater<ll> >
//------------------------------------------------------

int main() {
    int h[10];
    rep(i, 10) cin >> h[i];
    sort(h, h + 10);
    reverse(h, h + 10);
    rep(i, 3) cout << h[i] << endl;

    return 0;
}

C++: #include <iostream>

using namespace std;
int data[11];
int temp;
int main()
{
    cout << "Input 10 Data(value = 1-10000): " << endl;
    for(int a = 0;a<10;a++)
    {
        cin >> data[a];
    }

    for(int x=0;x<10;x++)
    {
        for(int y=0;y<10;y++)
        {
            if(data[y]<data[y+1])
            {
                temp = data[y];
                data[y] = data[y+1];
                data[y+1] = temp;
            }
        }
    }
    cout << data[0] << endl;
    cout << data[1] << endl;
    cout << data[2] << endl;
}

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

int main(){
	vector<int> v(10);
	for(int i = 0 ; i < 10 ; i++) cin >> v[i];
	sort(v.begin(),v.end());
	for(int i = 0 ; i < 3 ; i++)
		cout << v[v.size()-1-i] << endl;
}

C++: #include<stdio.h>
#include<algorithm.h>

using namespace std;

int main(){

 int i, height[10];
 for(i=0;i<10;i++){
  scanf("%d", &height[i]);
 }
 sort(height, height+10, greater<int>());

 for(i=0;i<2;i++){
  printf("%d\n", height[i]);
 }

 return 0;
}

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

int main(){
    int height[10];
    int i;
    for( i = 0; i < 10; i++){
        cin >> height[i];
    }
    for( i = 0; i < 10; i++){
        sort(height, height + 10);
    }
    for( i = 0; i < 10; i++){
        cout << height[i] << endl;
    }
    return 0;
}

C++: #include <iostream>
#include<stdio.h>
#include<math.h>
#include<string.h>

using namespace std;

int main() {
	int T,i,j,a[11];

	for(i=1;i<11;i++)
    {
        scanf("%d",&a[i]);
    }
    for(i=1;i<11;i++)
    {
        for(j=1;j<11;j++)
        {
            if(a[i]>a[j])
            {
                T=a[i];
                a[i]=a[j];
                a[j]=T;
            }

        }
    }
    for(i=1;i<4;i++)
    {
        printf("%d\n",a[i]);
    }

	return 0;
}

C++: //
//  main.cpp
//  ListOfHeights
//
//  Created by James Hosken on 28/09/2014.
//  Copyright (c) 2014 James Hosken. All rights reserved.
//

#include <iostream>
#include <stdlib.h>
#include <algorithm>
using namespace std;

int main(int argc, const char * argv[])
{
    
    string input_line;
    
    int *heights;
    heights = new int[0];
    int lineNum = 0;
    
    
    while(cin){
        getline(cin, input_line);
        lineNum++;
        
        //Chunk of array expansion code
        int line = atoi(input_line.c_str());
        int* temp = new int[lineNum];
        copy(heights, heights + lineNum-1, temp);
        delete [] heights;
        temp[lineNum-1] = line;
        heights = temp;
        
        
    }
    sort(heights, heights + lineNum);
    
    for(int i = lineNum; i < lineNum-3; i--){
        cout << heights[i] << i << endl;
    }

    
    
    
    return 0;
}

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

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

using namespace std;

int mountain[10];

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

C++: #include<cstdio>
#include<cstring>

int main(){
    int n[10],a;
    for (int f=0;f<10;f++){
        scanf("%d",&n[f]);
    }
    for(int f1=0;f1<10;f1++){
        for(int f2=0;f2<10;f2++){
            a=max(a,max(n[f1],n[f2]));
           }
      }
    printf("%d",a);
    return 0;
}

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

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

C++: #include<bits/stdc++.h>
using namespace std;
int main() {
  int h[10];
  for (int i = 0; i < 10; i++) {
    cin >> h[i];
  }
  sort(h, h+10);
  for (int i = 9; i >= 7; i--) {
    cout << h[i] << endl;
  }
  return 0;
}

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

int main() {
  vector<int> hills;
  for (int i = 0; i < 10; i++) {
    int x;
    cin >> x;
    hills.push_back(x);
  }
  std::sort(hills.begin(), hills.end(), std::greater<int>());
  for (int i = 0; i < 3; i++) {
    cout << hills[i] << endl;
  }
  return 0;
}

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

int main() {
  int mt[10];

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

  sort(mt,mt+10);

  for(int i=9;i>=7;i--) cout << mt[i] <<endl;

  return 0;

}

C++: #include <iostream>
#include <string>
#include <cstring>
#include <fstream>
#include <algorithm>
#include <iomanip>
#include <vector>
#include <stack>
#include <queue>
#include <deque>
#include <map>
#include <list>
#include <set>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <bitset>
#include <functional>

using namespace std;

#define FOR(i,n) 		for(int(i)=0;(i)<(int)(n);(i)++)
#define FORN(i,a,b,c) 	for(int(i)=a;i<(int)(b);i+=(c))
#define RES(x,nilai)	memset(x,nilai,sizeof(x));
#define pb              push_back
#define mp              make_pair
#define INF				1000000000

typedef long long ll;
typedef pair<int, int> ii;
typedef vector<int> vi;
typedef vector<ii> vii;

inline string IS(int a){
    char x[100];
    sprintf(x,"%d",a); string s = x;
    return s;
}

inline int SI(string a){
    char x[100]; int res;
    strcpy(x,a.c_str()); sscanf(x,"%d",&res);
    return res;
}

//==============================================

bool cmp(int x,int y) {return x>y;}

int arr[100];

int main() {
	//freopen("in.txt","r",stdin);
	//freopen("13.txt","w",stdout);
	ios_base::sync_with_stdio(false); cin.tie(NULL);
	
	for(int i =0 ;i < 10; i++) cin >> arr[i];
	sort(arr,arr+10)
	cout << arr[9] << endl << arr[8] << endl << arr[7] << endl;
		
    return 0;
}