import java.util.Arrays;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		String[] NLarr = scan.nextLine().split(" ");
		
		//N개의 string을 입력받는다
		int N = Integer.parseInt(NLarr[0]);
		
		//각 string은 L의 길이를 갖는다
		int L = Integer.parseInt(NLarr[1]);
		
		
		//N개의 string을 저장할 배열을 생성한다.
		String[] strArr = new String[N];
		String str = "";
		
		//N개의 string을 입력받아 배열을 초기화한다.
		for(int i=0; i<N;){
			str = scan.next().toLowerCase();
			if(str.length() == L){
				strArr[i] = str;
				i++;
			}
		}
		
		scan.close();
			
		Arrays.sort(strArr);
		
		//최종 출력
		String print="";
		
		for(String _print : strArr){
			print += _print;			
		}
		
		System.out.println(print);
	}
} import java.util.Arrays; Arrays java.util import java.util.Scanner; Scanner java.util public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		String[] NLarr = scan.nextLine().split(" ");
		
		//N개의 string을 입력받는다
		int N = Integer.parseInt(NLarr[0]);
		
		//각 string은 L의 길이를 갖는다
		int L = Integer.parseInt(NLarr[1]);
		
		
		//N개의 string을 저장할 배열을 생성한다.
		String[] strArr = new String[N];
		String str = "";
		
		//N개의 string을 입력받아 배열을 초기화한다.
		for(int i=0; i<N;){
			str = scan.next().toLowerCase();
			if(str.length() == L){
				strArr[i] = str;
				i++;
			}
		}
		
		scan.close();
			
		Arrays.sort(strArr);
		
		//최종 출력
		String print="";
		
		for(String _print : strArr){
			print += _print;			
		}
		
		System.out.println(print);
	}
} Main public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		String[] NLarr = scan.nextLine().split(" ");
		
		//N개의 string을 입력받는다
		int N = Integer.parseInt(NLarr[0]);
		
		//각 string은 L의 길이를 갖는다
		int L = Integer.parseInt(NLarr[1]);
		
		
		//N개의 string을 저장할 배열을 생성한다.
		String[] strArr = new String[N];
		String str = "";
		
		//N개의 string을 입력받아 배열을 초기화한다.
		for(int i=0; i<N;){
			str = scan.next().toLowerCase();
			if(str.length() == L){
				strArr[i] = str;
				i++;
			}
		}
		
		scan.close();
			
		Arrays.sort(strArr);
		
		//최종 출력
		String print="";
		
		for(String _print : strArr){
			print += _print;			
		}
		
		System.out.println(print);
	} main {
		Scanner scan = new Scanner(System.in);
		String[] NLarr = scan.nextLine().split(" ");
		
		//N개의 string을 입력받는다
		int N = Integer.parseInt(NLarr[0]);
		
		//각 string은 L의 길이를 갖는다
		int L = Integer.parseInt(NLarr[1]);
		
		
		//N개의 string을 저장할 배열을 생성한다.
		String[] strArr = new String[N];
		String str = "";
		
		//N개의 string을 입력받아 배열을 초기화한다.
		for(int i=0; i<N;){
			str = scan.next().toLowerCase();
			if(str.length() == L){
				strArr[i] = str;
				i++;
			}
		}
		
		scan.close();
			
		Arrays.sort(strArr);
		
		//최종 출력
		String print="";
		
		for(String _print : strArr){
			print += _print;			
		}
		
		System.out.println(print);
	} Scanner scan = new Scanner(System.in); scan new Scanner(System.in) String[] NLarr = scan.nextLine().split(" "); NLarr scan.nextLine().split(" ") scan.nextLine().split scan.nextLine() scan.nextLine scan " " int N = Integer.parseInt(NLarr[0]); N Integer.parseInt(NLarr[0]) Integer.parseInt Integer NLarr[0] NLarr 0 int L = Integer.parseInt(NLarr[1]); L Integer.parseInt(NLarr[1]) Integer.parseInt Integer NLarr[1] NLarr 1 String[] strArr = new String[N]; strArr new String[N] N String str = ""; str "" for(int i=0; i<N;){
			str = scan.next().toLowerCase();
			if(str.length() == L){
				strArr[i] = str;
				i++;
			}
		} int i=0; int i=0; i 0 i<N i N {
			str = scan.next().toLowerCase();
			if(str.length() == L){
				strArr[i] = str;
				i++;
			}
		} {
			str = scan.next().toLowerCase();
			if(str.length() == L){
				strArr[i] = str;
				i++;
			}
		} str = scan.next().toLowerCase() str scan.next().toLowerCase() scan.next().toLowerCase scan.next() scan.next scan if(str.length() == L){
				strArr[i] = str;
				i++;
			} str.length() == L str.length() str.length str L {
				strArr[i] = str;
				i++;
			} strArr[i] = str strArr[i] strArr i str i++ i scan.close() scan.close scan Arrays.sort(strArr) Arrays.sort Arrays strArr String print=""; print "" for(String _print : strArr){
			print += _print;			
		} String _print strArr {
			print += _print;			
		} {
			print += _print;			
		} print += _print print _print System.out.println(print) System.out.println System.out System System.out print String[] args args public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		String[] NLarr = scan.nextLine().split(" ");
		
		//N개의 string을 입력받는다
		int N = Integer.parseInt(NLarr[0]);
		
		//각 string은 L의 길이를 갖는다
		int L = Integer.parseInt(NLarr[1]);
		
		
		//N개의 string을 저장할 배열을 생성한다.
		String[] strArr = new String[N];
		String str = "";
		
		//N개의 string을 입력받아 배열을 초기화한다.
		for(int i=0; i<N;){
			str = scan.next().toLowerCase();
			if(str.length() == L){
				strArr[i] = str;
				i++;
			}
		}
		
		scan.close();
			
		Arrays.sort(strArr);
		
		//최종 출력
		String print="";
		
		for(String _print : strArr){
			print += _print;			
		}
		
		System.out.println(print);
	}
} public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		String[] NLarr = scan.nextLine().split(" ");
		
		//N개의 string을 입력받는다
		int N = Integer.parseInt(NLarr[0]);
		
		//각 string은 L의 길이를 갖는다
		int L = Integer.parseInt(NLarr[1]);
		
		
		//N개의 string을 저장할 배열을 생성한다.
		String[] strArr = new String[N];
		String str = "";
		
		//N개의 string을 입력받아 배열을 초기화한다.
		for(int i=0; i<N;){
			str = scan.next().toLowerCase();
			if(str.length() == L){
				strArr[i] = str;
				i++;
			}
		}
		
		scan.close();
			
		Arrays.sort(strArr);
		
		//최종 출력
		String print="";
		
		for(String _print : strArr){
			print += _print;			
		}
		
		System.out.println(print);
	}
} Main
import java.util.Arrays;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		String[] NLarr = scan.nextLine().split(" ");
		
		//N개의 string을 입력받는다
		int N = Integer.parseInt(NLarr[0]);
		
		//각 string은 L의 길이를 갖는다
		int L = Integer.parseInt(NLarr[1]);
		
		
		//N개의 string을 저장할 배열을 생성한다.
		String[] strArr = new String[N];
		String str = "";
		
		//N개의 string을 입력받아 배열을 초기화한다.
		for(int i=0; i<N;){
			str = scan.next().toLowerCase();
			if(str.length() == L){
				strArr[i] = str;
				i++;
			}
		}
		
		scan.close();
			
		Arrays.sort(strArr);
		
		//최종 출력
		String print="";
		
		for(String _print : strArr){
			print += _print;			
		}
		
		System.out.println(print);
	}
}