#include<bits/stdc++.h>
using namespace std;
int a[50],maxx[5000],ans[5000],l,n,maxx_len;
int cheng(int* c,int* a,int* b,int alen,int blen){
for(int i=1;i<=alen+blen;i++){
c[i]=0;
}
int cnt=alen+blen-1;
for(int i=alen;i>0;i--){
for(int j=blen;j>0;j--){
c[alen+blen-i-j+1]+=a[i]*b[j];
if(c[alen+blen-i-j+1]>9){
int temp=c[alen+blen-i-j+1]/10;
c[alen+blen-i-j+1]%=10;
c[alen+blen-i-j+2]+=temp;
}
}
}
if(c[cnt+1]!=0)cnt++;
for(int i=1;i<=cnt/2;i++){
swap(c[i],c[cnt-i+1]);
}
if(c[1]==0)return 1;
return cnt;
}
bool cmp(int* a,int* b,int alen,int blen){
if(alen!=blen)return (alen>blen);
for(int i=0;i<49;i++){
if(a[i]!=b[i]){
return(a[i]>b[i]);
}
}
return false;
}
void dfs(int step,int* ans,int last,int ans_len){
int temp[50],anss[50],temp_len=n-last,anss_len;
if(step==l){
for(int i=last+1;i<=n;i++){
temp[i-last]=a[i];
}
anss_len=cheng(anss,temp,ans,temp_len,ans_len);
if(cmp(anss,maxx,anss_len,maxx_len)){
for(int i=1;i<=anss_len;i++){
maxx[i]=anss[i];
}
maxx_len=anss_len;
}
return;
}
for(int i=last+1;i<=n-(l-step);i++){
temp[i-last]=a[i];
anss_len=cheng(anss,temp,ans,i-last,ans_len);
dfs(step+1,anss,i,anss_len);
}
return;
}
int main(){
scanf("%d%d",&n,&l);
for(int i=1;i<=n;i++){
char ch;
cin>>ch;
a[i]=ch-48;
}
ans[1]=1;
dfs(0,ans,0,1);
for(int i=1;i<=maxx_len;i++){
cout<<maxx[i];
}
return 0;
}