#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
const int N = 45;
int n,k;
vector<int> ans;
bool a[N];
string s;
vector<int> Max(vector<int> a,vector<int> b){
if(a.size() < b.size()) return b;
if(a.size() > b.size()) return a;
for(int i=0;i<a.size();i++){
if(a[i] > b[i]) return a;
if(a[i] < b[i]) return b;
}
vector<int> t;
return t;
}
vector<int> mul(vector<int> a,vector<int> b){
reverse(a.begin(),a.end());
reverse(b.begin(),b.end());
if(Max(a,b) == a){
vector<int> t = a;
a = b;
b = t;
}
int res[100] = {};
for(int i=0;i<a.size();i++){
vector<int> c;
for(int j=0;j<b.size();j++){
c.push_back(a[i] * b[j]);
}
reverse(c.begin(),c.end());
for(int j=1;j<=i;j++) c.push_back(0);
reverse(c.begin(),c.end());
for(int j=0;j<c.size();j++) res[j] += c[j];
}
for(int i=0;res[i]!=0;i++){
res[i + 1] += res[i] / 10;
res[i] %= 10;
}
vector<int> ret;
for(int i=0;res[i]!=0;i++) ret.push_back(res[i]);
reverse(ret.begin(),ret.end());
return ret;
}
vector<int> cal(){
vector<int> t;
vector<int> sum;
sum.push_back(1);
for(int i=0;i<s.size()-1;i++){
if(a[i] == true){
t.push_back(s[i] - '0');
sum = mul(sum,t);
t.clear();
}
else t.push_back(s[i] - '0');
}
t.push_back(s[s.size()-1] - '0');
sum = mul(sum,t);
return sum;
}
void dfs(int pos,int cnt){
if(pos == s.size() - 1) return ;
if(cnt == k){
ans = Max(ans,cal());
return ;
}
dfs(pos + 1,cnt);
a[pos] = true;
dfs(pos + 1,cnt + 1);
a[pos] = false;
}
int main(){
scanf("%d %d",&n,&k);
cin >> s;
dfs(0,0);
for(int i=0;i<ans.size();i++) printf("%d",ans[i]);
return 0;
}