Go: package main

import (
	"fmt"
	"sort"
)

func main() {
	mt := make([]int, 10)

	for i := 0; i < 10; i++ {
		fmt.Scan(&mt[i])
	}

	sort.Ints(mt)
	fmt.Printf("%d\n%d\n%d\n", mt[9], mt[8], mt[7])

}

C++: #include <iostream>

using namespace std;

int main()
{
    int data[11];
    int temp;
    for(int a = 0;a<10;a++)
    {
        cin >> data[a];
        if(data[a]<0||data[a]>10000)return 0;
    }

    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<string>
using namespace std;
int main(){
	int a[10];
	for(int i=0;i<10;i++)
		cin>>a[i];
	for(int i=0;i<9;i++){
      for(int j=9;j>i;j--){
	    if(a[j]>a[j-1]){
	    int t=a[j];
	    a[j]=a[j-1];
	    a[j-1]=t;
	   }
      }
    }
	cout<<a[0]<<endl;
	cout<<a[1]<<endl;
	cout<<a[2]<<endl;
	return 0;
}

C++: 1819
2003
876
2840
1723
1673
3776
2848
1592
922

C++: #include<cstdio>
#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#include<string>
#define REP(i,n) for(long long int (i)=0;(i)<(n);i++)


using namespace std;


int main(){
  priority_queue<int,vector<int>,less<int>>Q;
  int n;
  REP(i,10){
    cin >> n;
    Q.push(n);
  }
  REP(i,3){ cout << Q.top()<<endl;Q.pop();
  }
  return 0;
}

C++: #include <iostream>

using namespace std;

int main()
{
    int i,j,a[10],temp=0;
    for(i=0; i<10; i++)
    {
        cin>>a[i];
    }
    for(i=0; i< 10; i++)
    {
        for(j=1; j<9; j++)
        {
            if(a[j]<a[i])
            {
                temp = a[i];
                a[i] = a[j];
                a[j] = temp;
            }
        }
    }
    cout<<endl;
    for(i=1; i<4; i++)
    {
        cout<<a[i]<<endl;
    }
    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,greater<int>());
	
	for(int i = 0; i < 3; i++){
		cout << h[i] << endl;
	}
	
    return 0;
}

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

using namespace std;

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

C++: #include <bits/stdc++.h>
using namespace std;

typedef long int lint;
typedef long long int llint;
typedef pair<int, int> pii;
typedef pair<int, string> pis;
typedef pair<long, long> pll;

#define EACH(t, c) for (auto&& t : c)
#define ALL(c) begin(c), end(c)
#define FOR(i, s, e) for (int i = (s); i < (int)(e); ++i)
#define REP(i, n) FOR(i, 0, n)
#define endl '\n'
#define fk first
#define sv second

const int dx[] = {1, 0, -1, 0, 1, 1, -1, -1}, dy[] = {0, 1, 0, -1, 1, -1, 1, -1};
const int MOD = (int)1e9 + 7;
const int INF = 999999999;

template<typename T>
void print(const std::vector<T>& v, char sep=' ') {
  for (int i = 0; i < (int)v.size(); i++) {
    if (i != 0) cout << sep;
    cout << v[i];
  }
  cout << endl;
}

int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  int a[10];

  REP(i, 10) {
    cin >> a[i];
  }
  sort(ALL(a));

  REP(i, 3) {
    cout << a[9 - i] << endl;
  }
}

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

using namespace std;

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

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

C++: #include <bits/stdc++.h>
using namespace std;
typedef long long LL;
#define REP(i,N) for(int i = 0; i < (int)N; i++)

int main(){
	int hako[10];
	REP(i,10)cin >> hako[i];
	sort(hako,hako+10);
	reverse(hako,hako+10);
	REP(i,3)cout << hako[i] << endl;
	return 0;
}

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

using namespace std;

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

C++: #include<iostream>
 using namespace std;
int main(){
int input[10];
int first;
int second;
int third;
for(int i=0;i<10;i++){
cin>>input[i];
if(first<input){first = input[i];}else 
if(second<input){second = input[i];}else 
if(third<input){third = input[i];}
}
cout<<first<<endl;cout<<second<<endl;cout<<third<<endl;
return 0;

}

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

#define GET_MACRO(a, b, c, d, NAME, ...) NAME
#define REP(...) GET_MACRO(__VA_ARGS__, REP4, REP3, REP2)(__VA_ARGS__)
#define REP2(i, a) REP3(i, 0, a)
#define REP3(i, a, b) REP4(i, a, b, 1)
#define REP4(i, a, b, s) for (int i = (a); i < (int)(b); i += (s))
#define REPR(...) GET_MACRO(__VA_ARGS__, REPR4, REPR3, REPR2)(__VA_ARGS__)
#define REPR2(i, a) REPR3(i, 0, a)
#define REPR3(i, a, b) REPR4(i, a, b, 1)
#define REPR4(i, a, b, s) for (int i = (b)-1; i >= (int)(a); i -= (s))
#define ALL(c) (c).begin(), (c).end()
#define DUMP(x) (std::cerr << #x << ':' << ' ' << x << '\n')
#define TMPL_T template <typename T>
#define TMPL_TU template <typename T, typename U>
#define mut auto
#define let const auto

using Int = long long;
// clang-format off
namespace extio {
std::string delimiter=" ",pdelimiter=" ";
std::string bracket_b="",bracket_e="";
void chdelim(const std::string&s){delimiter=s;}
void chpdelim(const std::string&s){pdelimiter=s;}
void chbracket(const std::string&b,const std::string&e){bracket_b=b,bracket_e=e;}
TMPL_T  void pcont(std::ostream&os,const T&x){int c=0;for(const auto&a:x){if(c++)os<<delimiter;os<<a;}}
TMPL_TU void ppair(std::ostream&os,const std::pair<T,U>&p){os<<bracket_b<<p.first<<pdelimiter<<p.second<<bracket_e;}
}
namespace std {
TMPL_T ostream& operator<<(ostream&os,const vector<T>&x){extio::pcont(os,x);return os;}
TMPL_T ostream& operator<<(ostream&os,const set<T>&x){extio::pcont(os,x);return os;}
TMPL_T ostream& operator<<(ostream&os,const multiset<T>&x){extio::pcont(os,x);return os;}
TMPL_T ostream& operator<<(ostream&os,const deque<T>&x){extio::pcont(os,x);return os;}
TMPL_TU ostream& operator<<(ostream&os,const map<T,U>&x){extio::pcont(os,x);return os;}
TMPL_TU ostream& operator<<(ostream&os,const pair<T,U>&x){extio::ppair(os,x);return os;}
}
TMPL_TU inline bool chmax(T&x,U a){return x<a&&(x=a,1);}
TMPL_TU inline bool chmin(T&x,U a){return a<x&&(x=a,1);}

inline int in(){int x;std::cin>>x;return x;}

struct Initializer_ {
  Initializer_(){
    std::cin.tie(0);
    std::ios::sync_with_stdio(0);
    std::cout << std::setprecision(10);
    std::cerr << std::setprecision(10);
  }
} precalc;
// clang-format on
// }}}

using namespace std;

signed main() {
  vector<int> a;
  REP(i, 10) a.push_back(in());
  sort(ALL(a));
  reverse(ALL(a));
  REP(i, 3) cout << a[i] << endl;
  return 0;
}