#include<bits/stdc++.h>
using namespace std;
#define N 20
long long dp[N][N], num[N][N], m;//dp[i][j]:在前i位数字中插入j个乘号能得到的最大乘积。
int n, k;
void initNum()
{
int a[N] = {}, ai = n;
for(long long i = m; i > 0; i /= 10)//注意,这里可能保存m的数字都要设为long long
a[ai--] = i%10;//a:从低位到高位存储m的各个数位
for(int i = 1; i <= n; ++i)
for(int j = i; j <= n; ++j)
num[i][j] = num[i][j-1]*10+a[j];//num[i][j]:表示数字m截取第i位到第j位得到的数字
}
int main()
{
cin >> n >> k >> m;//m为数字串
initNum();//初始化num数组
for(int i = 1; i <= n; ++i)//初始状态
dp[i][0] = num[1][i];//前i位数字中插入0个乘号,乘积就是这i位数字
for(int i = 1; i <= n; ++i)
for(int j = 1; j <= k; ++j)
for(int h = j-1; h < i; ++h)
dp[i][j] = max(dp[i][j], dp[h][j-1]*num[h+1][i]);
cout << dp[n][k];
return 0;
}