#include <iostream>
#include <cstring>
#include <cmath>
using namespace std;
#define SIZE 20
char arr[SIZE];
int Num[SIZE][SIZE];
int DP[SIZE][SIZE];
int len;
int cutNum;
void getNum(){
int mid;
for( int i = 1; i <= len; ++i )
Num[i][i] = arr[i] - '0';
for( int dist = 1; dist <= len; ++dist ){
for( int start = 1; ( start + dist ) <= len; ++start ){
mid = ( start + start + dist ) / 2;
Num[start][start + dist] = Num[start][mid] * pow( 10, ( start + dist - mid ) ) + Num[mid + 1][start + dist];
}
}
}
void cal(){
for( int i = 1; i <= len; ++i )
DP[i][0] = Num[1][i];
for( int cutNum = 0; cutNum <= len - 1 ; ++cutNum ){
for( int end = 1; end <= len; ++end ){
for( int pos = 1; pos <= end; ++pos ){
if( end > cutNum && pos > ( cutNum - 1 ) && ( pos + 1 ) <= end )
DP[end][cutNum] = max( DP[end][cutNum], DP[pos][cutNum - 1] * Num[pos + 1][end] );
}
}
}
}
int main(){
memset( DP, 0, sizeof(DP) );
cin >> len >> cutNum;
for( int i = 1; i <= len; ++i )
cin >> arr[i];
getNum();
cal();
cout << "ANS: " << DP[len][cutNum - 1] << endl;
return 0;
}