import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

class Main {

	public static void main(String[] args) {

		// ストリームを作成する
		BufferedReader reader = new BufferedReader(new InputStreamReader(
				System.in));

		// 入力値を受け取り、リストに追加する
		List<Integer> heightList = new ArrayList<Integer>();
		for (int i = 0; i < 10; i++) {
			heightList.add(getHeight(reader));
		}

		// 昇順にソートする
		Collections.sort(heightList);

		// 下位3件を出力する
		for (int i = 0; i < 3; i++) {
			System.out.println(heightList.get(9 - i));
		}

	}

	/**
	 * ストリームから1行読み込んで、高さを数値として返す。
	 *
	 * @param reader
	 *            入力ストリーム
	 * @return 高さ
	 */
	private static Integer getHeight(BufferedReader reader) {
		Integer height = null;
		try {
			String line = reader.readLine();
			height = new Integer(line);
		} catch (IOException e) {
			throw new RuntimeException();
		}
		return height;
	}
} import java.io.BufferedReader; BufferedReader java.io import java.io.IOException; IOException java.io import java.io.InputStreamReader; InputStreamReader java.io import java.util.ArrayList; ArrayList java.util import java.util.Collections; Collections java.util import java.util.List; List java.util class Main {

	public static void main(String[] args) {

		// ストリームを作成する
		BufferedReader reader = new BufferedReader(new InputStreamReader(
				System.in));

		// 入力値を受け取り、リストに追加する
		List<Integer> heightList = new ArrayList<Integer>();
		for (int i = 0; i < 10; i++) {
			heightList.add(getHeight(reader));
		}

		// 昇順にソートする
		Collections.sort(heightList);

		// 下位3件を出力する
		for (int i = 0; i < 3; i++) {
			System.out.println(heightList.get(9 - i));
		}

	}

	/**
	 * ストリームから1行読み込んで、高さを数値として返す。
	 *
	 * @param reader
	 *            入力ストリーム
	 * @return 高さ
	 */
	private static Integer getHeight(BufferedReader reader) {
		Integer height = null;
		try {
			String line = reader.readLine();
			height = new Integer(line);
		} catch (IOException e) {
			throw new RuntimeException();
		}
		return height;
	}
} Main public static void main(String[] args) {

		// ストリームを作成する
		BufferedReader reader = new BufferedReader(new InputStreamReader(
				System.in));

		// 入力値を受け取り、リストに追加する
		List<Integer> heightList = new ArrayList<Integer>();
		for (int i = 0; i < 10; i++) {
			heightList.add(getHeight(reader));
		}

		// 昇順にソートする
		Collections.sort(heightList);

		// 下位3件を出力する
		for (int i = 0; i < 3; i++) {
			System.out.println(heightList.get(9 - i));
		}

	} main {

		// ストリームを作成する
		BufferedReader reader = new BufferedReader(new InputStreamReader(
				System.in));

		// 入力値を受け取り、リストに追加する
		List<Integer> heightList = new ArrayList<Integer>();
		for (int i = 0; i < 10; i++) {
			heightList.add(getHeight(reader));
		}

		// 昇順にソートする
		Collections.sort(heightList);

		// 下位3件を出力する
		for (int i = 0; i < 3; i++) {
			System.out.println(heightList.get(9 - i));
		}

	} BufferedReader reader = new BufferedReader(new InputStreamReader(
				System.in)); reader new BufferedReader(new InputStreamReader(
				System.in)) List<Integer> heightList = new ArrayList<Integer>(); heightList new ArrayList<Integer>() for (int i = 0; i < 10; i++) {
			heightList.add(getHeight(reader));
		} int i = 0; int i = 0; i 0 i < 10 i 10 i++ i++ i {
			heightList.add(getHeight(reader));
		} {
			heightList.add(getHeight(reader));
		} heightList.add(getHeight(reader)) heightList.add heightList getHeight(reader) getHeight reader Collections.sort(heightList) Collections.sort Collections heightList for (int i = 0; i < 3; i++) {
			System.out.println(heightList.get(9 - i));
		} int i = 0; int i = 0; i 0 i < 3 i 3 i++ i++ i {
			System.out.println(heightList.get(9 - i));
		} {
			System.out.println(heightList.get(9 - i));
		} System.out.println(heightList.get(9 - i)) System.out.println System.out System System.out heightList.get(9 - i) heightList.get heightList 9 - i 9 i String[] args args /**
	 * ストリームから1行読み込んで、高さを数値として返す。
	 *
	 * @param reader
	 *            入力ストリーム
	 * @return 高さ
	 */
	private static Integer getHeight(BufferedReader reader) {
		Integer height = null;
		try {
			String line = reader.readLine();
			height = new Integer(line);
		} catch (IOException e) {
			throw new RuntimeException();
		}
		return height;
	} getHeight {
		Integer height = null;
		try {
			String line = reader.readLine();
			height = new Integer(line);
		} catch (IOException e) {
			throw new RuntimeException();
		}
		return height;
	} Integer height = null; height null try {
			String line = reader.readLine();
			height = new Integer(line);
		} catch (IOException e) {
			throw new RuntimeException();
		} catch (IOException e) {
			throw new RuntimeException();
		} IOException e {
			throw new RuntimeException();
		} throw new RuntimeException(); new RuntimeException() {
			String line = reader.readLine();
			height = new Integer(line);
		} String line = reader.readLine(); line reader.readLine() reader.readLine reader height = new Integer(line) height new Integer(line) return height; height BufferedReader reader reader
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

class Main {

	public static void main(String[] args) {

		// ストリームを作成する
		BufferedReader reader = new BufferedReader(new InputStreamReader(
				System.in));

		// 入力値を受け取り、リストに追加する
		List<Integer> heightList = new ArrayList<Integer>();
		for (int i = 0; i < 10; i++) {
			heightList.add(getHeight(reader));
		}

		// 昇順にソートする
		Collections.sort(heightList);

		// 下位3件を出力する
		for (int i = 0; i < 3; i++) {
			System.out.println(heightList.get(9 - i));
		}

	}

	/**
	 * ストリームから1行読み込んで、高さを数値として返す。
	 *
	 * @param reader
	 *            入力ストリーム
	 * @return 高さ
	 */
	private static Integer getHeight(BufferedReader reader) {
		Integer height = null;
		try {
			String line = reader.readLine();
			height = new Integer(line);
		} catch (IOException e) {
			throw new RuntimeException();
		}
		return height;
	}
}