Quirino is an aspiring Pokémon professor. He has a specialization in Taxonomy, and one of his responsibilities as an assistant to the renowned Professor Rowan is to decide the names of new Pokémon that are discovered in the Sinnoh region.
Different Pokémon cannot have the same name, so Quirino received a list of the last $$$N$$$ names given to Pokémon to avoid repetitions. Additionally, due to restrictions in the naming system, names must have a maximum of $$$K$$$ characters.
Quirino is methodical and wishes to choose the lexicographically smallest possible name for every Pokémon he will name. However, since he climbed Mount Coronet to uncover the secrets of the Creation Trio, he has not been seen again. In the name of Arceus, help him write a program that names new Pokémon according to his restrictions and preferences while he is away!
Note: a word $$$A$$$ is lexicographically smaller than another $$$B$$$ if it would come before it in the dictionary. That is, if $$$A \neq B$$$ and one of the two holds:
The first line of the input contains the numbers $$$N$$$ and $$$K$$$: the number of names in the list and the maximum size of a name ($$$1 \leq N, K \leq 2 \cdot 10^5$$$).
The next $$$N$$$ lines each contain one of the names from the list: a word composed of characters from $$$a$$$ to $$$z$$$ having between $$$1$$$ and $$$K$$$ characters.
Additional constraints:
Print, in a single line, the lexicographically smallest name (with between $$$1$$$ and $$$k$$$ characters from $$$a$$$ to $$$z$$$) that is not in the list given in the input.
2 10torterrapikachu
a
2 2aaa
ab