#题目
#算法实现思路
#代码如下
import java.util.Arrays;
import java.util.Scanner;
public class Main {
int[][]dp;
int[][]m;
public static void main(String[] args) {
//输入输出部分
Main main= new Main();
Scanner in = new Scanner(System.in);
int n= in.nextInt();
int k=in.nextInt();
long num= in.nextInt();
main.dp= new int[n+1][k];
main.m= new int[n+1][n+1];
//以下是m数组和dp数组的初始化
long tmp= num;
for(int i=n;i>0;i--){
main.m[i][i]= (int) tmp%10;
tmp/=10;
}
for(int i=1;i<n+1;i++){
for(int j=i+1;j<n+1;j++){
int mytmp=0;
for(int t=i;t<j+1;t++){
mytmp=mytmp*10+main.m[t][t];
}
main.m[i][j]=mytmp;
}
}
for(int i=0;i<n+1;i++)
for(int j=0;j<k;j++)
main.dp[i][j]=0;
//运行输出答案
main.mdp();
System.out.println(main.dp[n][k-1]);
//以下代码供debug使用,打印m和dp数组
// for(int [] d: main.dp)
// System.out.println(Arrays.toString(d));
//
// for(int [] d: main.m)
// System.out.println(Arrays.toString(d));
}
//动态规划代码
public void mdp(){
for(int i=1;i< dp.length;i++){
for(int j=0;j<dp[0].length;j++){
if(j==0) {
dp[i][j] = m[1][i];
continue;
}
for(int q=j;q<i;q++){
dp[i][j]= Math.max(dp[i][j],dp[q][j-1]*m[q+1][i]);
}
}
}
}
}