N, K = map(int, input().split()) T = input() def code(s): return ord(s)-ord("a") def codeR(n): return chr(ord("a")+n-1) dp = [0]*(N+1) dp[-1] = 1 limit = K for i in reversed(range(N)): if T[i] == "0": continue dp[i] = dp[i+1] if i+1 < N and int(T[i:i+2]) <= 26: dp[i] += dp[i+2] dp[i] = min(dp[i], limit) ans = [] SUM = 0 idx = 0 while idx < N: if K <= SUM+dp[idx+1]: ans.append(codeR(int(T[idx]))) idx += 1 else: ans.append(codeR(int(T[idx:idx+2]))) SUM += dp[idx+1] idx += 2 print("".join(ans))