#include <iostream>
#include <algorithm>
using namespace std;
__int128 n,k,a[50],p,maxn;
char s;
__int128 read(){
__int128 x=0,f=1;
char ch=getchar();
while (ch<'0'||ch>'9'){
if (ch=='-') f=-1;
ch=getchar();
}
while (ch>='0'&&ch<='9'){
x=x*10+ch-'0';
ch=getchar();
}
return x*f;
}
void write(__int128 x){
if (x<0){
putchar('-');
x=-x;
}
if (x>9) write(x / 10);
putchar(x%10+'0');
}
void dfs(__int128 x,__int128 q,__int128 t){
if (x>=k){
p=0;
for (__int128 i=t+1;i<=n;i++){
p=p*10+a[i];
maxn=max(maxn,q*p);
}
return;
}
for (__int128 i=t+1;i<=n-k+x;i++){
p=0;
for (__int128 j=t+1;j<=i;j++){
p=p*10+a[j];
}
dfs(x+1,q*p,i);
}
return;
}
int main(){
n=read();k=read();
for (__int128 i=1;i<=n;i++){
cin>>s;
a[i]=s-'0';
}
dfs(0,1,0);
write(maxn);
return 0;
}
80分玄关