Since the phage Phi-X174 was sequenced in 1977, the DNA sequences of thousands of organisms have been decoded and stored in databases. This sequence information is analyzed to identify genes that encode polypeptides (proteins), RNA genes, regulatory sequences, structural motifs, and repetitive sequences. A comparison of genes within a species or between different species can reveal similarities in protein functions or relations between species (the use of molecular systematics to construct phylogenetic trees). With the growing volume of data, it long ago became impractical to analyze DNA sequences manually. Today, computer programs such as BLAST are used daily to search sequences from more than 260,000 organisms, containing over 190 billion nucleotides. These programs can compensate for mutations (such as substituted, deleted, or inserted bases) in the DNA sequence to identify related, but not identical, sequences. A variant of this sequence alignment is used in the sequencing process itself. The so-called shotgun sequencing technique (which was used, for example, by The Institute for Genomic Research to sequence the first bacterial genome, Haemophilus influenzae) does not produce entire chromosomes, but instead generates the sequences of many thousands of small DNA fragments (ranging from to nucleotides long, depending on the sequencing technology). The ends of these fragments overlap and, when aligned properly by a genome assembly program, can be used to reconstruct the complete genome. Shotgun sequencing yields sequence data quickly, but the task of assembling the fragments can be quite complicated for larger genomes. For a genome as large as the human genome, it may take many days of CPU time on large-memory, multiprocessor computers to assemble the fragments, and the resulting assembly will usually contain numerous gaps that have to be filled in later. Shotgun sequencing is the method of choice for virtually all genomes sequenced today, and genome assembly algorithms are a critical area of bioinformatics research.
The input consists of lines, each containing a string of length . Each string consists only of English alphabet letters [A-Za-z] (2 \le n \le 100\ 000, 2 \le l \le 100\ 000). Uppercase and lowercase letters are considered different. In the test cases, input and output are limited such that n \times l \le 5 \times 1\ 024 \times 1\ 024 to reduce input/output.
Output a string of length l + n - 1 such that all the given input strings are its substrings, each starting from a different position. It is guaranteed that such a string exists. If there are multiple possible answers, output any of them.
Example 1