#include using namespace std; int main(){ using ll=long long; ll inf=2e18; ll n,k; string t; cin>>n>>k>>t; auto f=[&](int l,int len){ if (!(0<=l&&l+len<=n)) return -1; int ret; if (len==1) ret=t[l]-'0'; if (len==2){ if (t[l]=='0') ret=-1; else ret=(t[l]-'0')*10+(t[l+1]-'0'); } if (1<=ret&&ret<=26) return ret; else return -1; }; vector dp(n+1); dp[0]=1; for (int i=1;i<=n;i++){ if (f(n-i,1)!=-1) dp[i]+=dp[i-1]; if (f(n-i,2)!=-1) dp[i]+=dp[i-2]; dp[i]=min(dp[i],inf); } string ans; for (int i=0;i> vp; if (f(i,1)!=-1) vp.push_back({f(i,1),dp[n-i-1],i+1}); if (f(i,2)!=-1) vp.push_back({f(i,2),dp[n-i-2],i+2}); sort(vp.begin(),vp.end()); ll sum=0; for (auto [val,s,j]:vp){ if (k<=sum+s){ ans+=char('a'+val-1); i=j; k-=sum; break; } sum+=s; } } cout<