## 没用到API求解,纯暴力解法,在排序那里还有待优化,比如用更好的快速排序、归并排序等
import java.io.*;
public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = br.readLine();
        int num = Integer.parseInt(str);
        String[] words = new String[num];
        String temp = "";
        for(int i = 0; i < num; i++) {
            words[i] = br.readLine();
        }
        for(int j = 0; j < num; j++) {
            for(int k = j + 1; k < num; k++) {
                if(isSwap(words[j], words[k])) {
                    temp = words[j];
                    words[j] = words[k];
                    words[k] = temp;
                }
            }
            System.out.println(words[j]);
        }
    }

    public static boolean isSwap(String word1, String word2) {
        
        for (int i = 0; i < Math.min(word1.length(), word2.length()); i++) {
            if (word1.charAt(i) - word2.charAt(i) > 0) {
               return true;
            }else if(word1.charAt(i) - word2.charAt(i) < 0) {
                return false;
            }
        }
        if(word1.length() <= word2.length()) {
            return false;
        }else {
            return true;
        }
    }
}