import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num=sc.nextInt();//要输入的次数 String[] str; str=new String[num];//创建String数组来存放数据 for (int i = 0; i < num; i++) { str[i] = sc.next();//循环输入数据 } //下面套用冒泡排序的方法 for (int k = 0; k < str.length-1; k++) { for (int j = 0; j < str.length-1-k; j++) {//下面是循环比较两个单词的相对字母之间的顺序关系 for (int i = 0; i < str[j].length()&&i<str[j+1].length(); i++) { String left1=str[j]; int left0=left1.charAt(i); String right1=str[j+1]; int right0=right1.charAt(i); if (left0>right0) { str[j]=right1; str[j+1]=left1; break; }else if(left0<right0) { break; }else if(right1.subSequence(0, Math.min(right1.length(), left1.length())).equals(left1.subSequence(0, Math.min(right1.length(), left1.length())))&&right1.length()<left1.length()) { str[j]=right1; str[j+1]=left1; break; }else if(right1.subSequence(0, Math.min(right1.length(), left1.length())).equals(left1.subSequence(0, Math.min(right1.length(), left1.length())))&&right1.length()>left1.length()) { break; } } } } for (int h = 0; h < str.length; h++) { System.out.println(str[h]); } } }