import java.util.ArrayList;
public class declare {
	public static String nacistRadku(int maximalniDelka){
		byte pole[] = new byte[maximalniDelka];
		int pozice =  0;
		int znak = -1;
		try{
			while (pozice < maximalniDelka){
				znak = System.in.read();
				if((znak<0) || (znak == '\n') || (znak == ' ')) {
					break;
				}
				pole[pozice] += znak;
				pozice++;
			}
		} catch (Exception e){
			return null;
		}
		if ((znak < 0) && (pozice == 0)){
			return null;
		}
		return (new String(pole,0,pozice));
	}
		
		
	public static void pr(ArrayList<String> a1, ArrayList<String> a2) {
		if (a2.indexOf(a1.get(0)) != -1) {
				while (!a1.get(0).equals(a2.get(0))) {
				        System.out.print(a2.remove(0) + " ");
				}
				System.out.print(a1.remove(0) + " ");
				a2.remove(0);
				return;
		} else {
			System.out.print(a1.remove(0) + " ");
		}
	}
	public static void main(String[] args){
		ArrayList<String> a1 = new ArrayList<String>();
		ArrayList<String> a2 = new ArrayList<String>();
		String s;
		while (true) {
			a1.clear();
			a2.clear();
			while (!(s = nacistRadku(11)).equals(".")) {
				if (a1.indexOf(s) == -1) {
					a1.add(s);
				}
			}
			if (a1.size() == 0) {
				break;
			}
			while (!(s = nacistRadku(11)).equals(".")) {
				if (a2.indexOf(s) == -1) {
					a2.add(s);
				}
			}
			while (a1.size() > 0 && a2.size() > 0) {
				if (a1.get(0).equals(a2.get(0))) {
					System.out.print(a1.remove(0) + " ");
					a2.remove(0);
				} else {
					if (a1.get(0).compareTo(a2.get(0)) < 0 || a2.get(0).startsWith(a1.get(0))) {
						pr(a1, a2);
					} else {
						pr(a2, a1);
						
					}
				}
			}
			while (a1.size() > 0) {
				System.out.print(a1.remove(0) + " ");
			}
			while (a2.size() > 0) {
				System.out.print(a2.remove(0) + " ");
			}
			System.out.println(".");
		}
	}
}
