import java.util.*;
import java.io.*;
class Stack<T> {
private LinkedList<T> storage = new LinkedList<T>();
public void push(T v) {storage.addFirst(v);}
public T peek() {return storage.getFirst();}
public T pop() {return storage.removeFirst();}
public boolean isEmpty() {return storage.isEmpty();}
public String toString
() {return storage.
toString();} }
public class Main
{
static int[][] a = new int[128][128];
static boolean[] used = new boolean[128];
static boolean[] exist = new boolean[128];
static Stack<Character> q = new Stack<Character>();
static Scanner sc
= new Scanner
(System.
in);
/*
* function for search in s1 and s2 first different characters
* if s1 equals s2 then return -1
* else first different character index
*/
for(int i
= 0; i
< Math.
min(s1.
length(), s2.
length()); i
++) if(s1.charAt(i) != s2.charAt(i)) {
return i;
}
return -1;
}
static void dfs(int v) {
used[v] = true;
for(int i = 0; i < 128; i++)
if (a[v][i] == 1 && !used[i]) {
dfs(i);
}
q.push((char)v);
}
static void topSort() {
for(int i = 127; i >= 0; i--)
{
boolean flag = false;
for(int j = 0; j < 128; j++)
if(a[i][j] == 1)
flag = true;
if(!used[i] && flag)
dfs(i);
}
}
try
{
s1 = sc.nextLine();
do {
s2 = sc.nextLine();
if(s2.equals("#"))
break;
int i = strcmp(s1,s2);
if(i != -1)
a[s1.charAt(i - 1)][s2.charAt(i - 1)] = 1;
s1 = s2;
} while(!s1.equals("#"));
topSort();
while(!q.isEmpty()) {
pw.print(q.pop());
}
}
finally
{
pw.close();
}
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5pby4qOwoKY2xhc3MgU3RhY2s8VD4gewogICBwcml2YXRlIExpbmtlZExpc3Q8VD4gc3RvcmFnZSA9IG5ldyBMaW5rZWRMaXN0PFQ+KCk7CiAgIHB1YmxpYyB2b2lkIHB1c2goVCB2KSB7c3RvcmFnZS5hZGRGaXJzdCh2KTt9CiAgIHB1YmxpYyBUIHBlZWsoKSB7cmV0dXJuIHN0b3JhZ2UuZ2V0Rmlyc3QoKTt9CiAgIHB1YmxpYyBUIHBvcCgpIHtyZXR1cm4gc3RvcmFnZS5yZW1vdmVGaXJzdCgpO30KICAgcHVibGljIGJvb2xlYW4gaXNFbXB0eSgpIHtyZXR1cm4gc3RvcmFnZS5pc0VtcHR5KCk7fQogICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkge3JldHVybiBzdG9yYWdlLnRvU3RyaW5nKCk7fQp9CgpwdWJsaWMgY2xhc3MgTWFpbgp7CiAgIHN0YXRpYyBpbnRbXVtdICBhID0gbmV3IGludFsxMjhdWzEyOF07CiAgIHN0YXRpYyBib29sZWFuW10gdXNlZCA9IG5ldyBib29sZWFuWzEyOF07CiAgIHN0YXRpYyBib29sZWFuW10gZXhpc3QgPSBuZXcgYm9vbGVhblsxMjhdOwogICAKICAgc3RhdGljIFN0YWNrPENoYXJhY3Rlcj4gcSA9IG5ldyBTdGFjazxDaGFyYWN0ZXI+KCk7CgogICBzdGF0aWMgU2Nhbm5lciBzYyA9IG5ldyBTY2FubmVyKFN5c3RlbS5pbik7CiAgICBzdGF0aWMgUHJpbnRXcml0ZXIgcHcgPSBuZXcgUHJpbnRXcml0ZXIoU3lzdGVtLm91dCk7CgogICAvKgogICAgKiBmdW5jdGlvbiBmb3Igc2VhcmNoIGluIHMxIGFuZCBzMiBmaXJzdCBkaWZmZXJlbnQgY2hhcmFjdGVycwogICAgKiBpZiBzMSBlcXVhbHMgczIgdGhlbiByZXR1cm4gLTEKICAgICogZWxzZSBmaXJzdCBkaWZmZXJlbnQgY2hhcmFjdGVyIGluZGV4CiAgICAqLwogICBzdGF0aWMgaW50IHN0cmNtcChTdHJpbmcgczEsIFN0cmluZyBzMikgewogICAgICAKICAgICAgZm9yKGludCBpID0gMDsgaSA8IE1hdGgubWluKHMxLmxlbmd0aCgpLCBzMi5sZW5ndGgoKSk7IGkrKykKICAgICAgICAgaWYoczEuY2hhckF0KGkpICE9IHMyLmNoYXJBdChpKSkgewogICAgICAgICAgICByZXR1cm4gaTsKICAgICAgICAgfQogICAgICAKICAgICAgcmV0dXJuIC0xOwogICB9CiAgICAgIAogICAgc3RhdGljIHZvaWQgZGZzKGludCB2KSB7CiAgICAgICB1c2VkW3ZdID0gdHJ1ZTsKICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCAxMjg7IGkrKykKICAgICAgICAgIGlmIChhW3ZdW2ldID09IDEgJiYgIXVzZWRbaV0pIHsKICAgICAgICAgICAgIGRmcyhpKTsgICAKICAgICAgICAgIH0KICAgICAgIHEucHVzaCgoY2hhcil2KTsKICAgIH0KICAgCiAgICBzdGF0aWMgdm9pZCB0b3BTb3J0KCkgewogICAgICAgZm9yKGludCBpID0gMTI3OyBpID49IDA7IGktLSkKICAgICAgIHsKICAgICAgICAgIGJvb2xlYW4gZmxhZyA9IGZhbHNlOwogICAgICAgICAgZm9yKGludCBqID0gMDsgaiA8IDEyODsgaisrKQogICAgICAgICAgICAgaWYoYVtpXVtqXSA9PSAxKQogICAgICAgICAgICAgICAgZmxhZyA9IHRydWU7CiAgICAgICAgICBpZighdXNlZFtpXSAmJiBmbGFnKQogICAgICAgICAgICAgZGZzKGkpOwogICAgICAgfQogICAgfQogICAKICAgCiAgIAogICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgSU9FeGNlcHRpb24gewogICAgICAgCiAgICAgICAgdHJ5CiAgICAgICAgewogICAgICAgICAgIFN0cmluZyBzMSxzMjsKICAgICAgICAgICBzMSA9IHNjLm5leHRMaW5lKCk7CiAgICAgICAgICAgCiAgICAgICAgICAgZG8gewogICAgICAgICAgICAgIAogICAgICAgICAgICAgIHMyID0gc2MubmV4dExpbmUoKTsKICAgICAgICAgICAgICAgICBpZihzMi5lcXVhbHMoIiMiKSkKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBpbnQgaSA9IHN0cmNtcChzMSxzMik7CgogICAgICAgICAgICAgIGlmKGkgIT0gLTEpCiAgICAgICAgICAgICAgICAgYVtzMS5jaGFyQXQoaSAtIDEpXVtzMi5jaGFyQXQoaSAtIDEpXSA9IDE7CiAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgczEgPSBzMjsKICAgICAgICAgICAgICAKICAgICAgICAgICB9IHdoaWxlKCFzMS5lcXVhbHMoIiMiKSk7CiAgICAgICAgICAgCgogICAgICAgICAgIHRvcFNvcnQoKTsKICAgICAgICAgICAKICAgICAgICAgICB3aGlsZSghcS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgICBwdy5wcmludChxLnBvcCgpKTsKICAgICAgICAgICB9CgogICAgICAgIH0KICAgICAgICBmaW5hbGx5CiAgICAgICAgewogICAgICAgICAgIHB3LmNsb3NlKCk7CiAgICAgICAgfQogICAgfQogICAKfQ==