AtCoder Beginner Contest 025

A - 25個の文字列


Time limit時間制限 : 2sec / Memory limitメモリ制限 : 256MB

問題文

高橋君は短めの呼び名を考えています。呼び名は半角小文字アルファベット 2 文字で構成されます。

高橋君には好きな 5 種類のアルファベットがあります。高橋君は、以下の条件を満たす長さ 2 の文字列すべてを考え、それらの集合を「呼び名候補の集合」と呼ぶことにします。

  • 条件 : 文字列の 1 文字目も 2 文字目も高橋君が好きな 5 種類のアルファベットのいずれかである。

ここで、2 つの長さ 2 の異なる文字列 S,T に関して、ST よりも辞書順で先に来るというのは、以下の条件のうちのいずれかが満たされたときです。

  • 文字列 S1 文字目と文字列 T1 文字目が異なり、かつ文字列 S1 文字目が文字列 T1 文字目よりもアルファベット順 (ABC 順) で先である。
  • 文字列 S1 文字目と文字列 T1 文字目が同じで、かつ文字列 S2 文字目が文字列 T2 文字目よりもアルファベット順 (ABC 順) で先である。

例えば、好きなアルファベットが a, b, c, d, e のとき、「呼び名候補の集合」に含まれる文字列は、辞書順に、aa, ab, ac, ad, ae, ba, bb, bc, bd, be, ca, cb, cc, cd, ce, da, db, dc, dd, de, ea, eb, ec, ed, ee となります。

「呼び名候補の集合」を構成する文字列は全部で 25 個あります。高橋君はそれらの文字列を辞書順に並べたときに先頭から N 番目となる文字列を最終的な呼び名にすることにしました。

あなたの課題は、高橋君が定めた最終的な呼び名を求めることです。


入力

入力は以下の形式で標準入力から与えられる。

S
N
  • 1 行目には、長さ 5 の文字列 S が与えられる。S の各文字はいずれも半角小文字アルファベットであり、S に使われている文字には重複がなく、かつ昇順に並んでいる。すなわち文字列 S の左から i (1 ≦ i ≦ 5) 文字目の文字を c_i としたとき、c_i ≠ c_j (i≠j) であり、i<j ならアルファベット c_i はアルファベット c_j よりもアルファベット順で前である。
  • 2 行目には、整数 N (1 ≦ N ≦ 25) が与えられる。

出力

高橋君が定めた最終的な呼び名を 1 行に出力せよ。出力の末尾に改行を入れること。


入力例1

abcde
8

出力例1

bc
  • 「呼び名候補の集合」は、問題文中の例と同一です。「呼び名候補の集合」の中で、辞書順で 8 番目の文字列は bc なので、bc を出力します。

入力例2

aeiou
22

出力例2

ue

入力例3

vwxyz
25

出力例3

zz

Submit提出する