#include<iostream> using namespace std; long long best[41][31]; long long a[41][31]; int main( ) { freopen("in.txt","r",stdin); int n,k; cin>>n>>k; char ch[41]; cin>>ch; //for( int i=0;i<n;i++) // for( int j=0;j<n;j++){ // int t=1; // long long temp=0; // for(int z=j;z>=i;z--) { // temp+=(ch[z]-'0')*t; // t*=10; // } for(int i=n-1;i>=0;i--){ int t=1; long long temp=0; for(int j=i;j>=0;j--){ temp+=(ch[j]-'0')*t; t*=10; a[j][i]=temp; if(0==j) best[i][0]=a[j][i]; } } // for(int i=0;i<n;i++) // best[i][0]=a[0][i]; long long tt; for(int i=1;i<=k;i++) for(int j=0;j<n;j++) for(int k=0;k<j;k++){ if(best[j][i]<(tt=best[k][i-1]*a[k+1][j])) best[j][i]=tt; } cout<<best[n-1][k]<<endl; return 0; } #include<iostream> using namespace std; long long best[41][31][31]; int main( ) { freopen("in.txt","r",stdin); int n,k; scanf("%d%d",&n,&k); char ch[41]; cin>>ch; for( int i=0;i<n;i++) for(int j=0;j<n;j++){ int t=1; long long temp=0; for(int z=j;z>=i;z--){ temp+=(ch[z]-'0')*t; t*=10; } best[i][j][0]=temp; } for(int a=1;a<=k;a++) for(int b=1;b<=a;b++) for(int i=0;i<n;i++) for(int j=0;j<n;j++) for(int c=i;c<j;c++){ if(best[i][j][a]<best[i][c][b-1]*best[c+1][j][a-b]) best[i][j][a]=best[i][c][b-1]*best[c+1][j][a-b]; } cout<<best[0][n-1][k]<<endl; return 0; }