#include <bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;
int dp[20][20][20];
signed main (){
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int n,m;
cin >> n >> m;
for(int i = 1 ; i <= n ; i ++){
cin >> dp[i][i][0] = a[i];
}
for(int l = 2 ; l <= n ; l++){
for (int x = 0 ; x<= min(l-1,m) ; x ++){
for (int i = 1 ; i+l-1<=n ; i ++){
int j = i+l-1;
for (int k = i ; k < j ; k ++){
int num = min(x,k-i);
for(int cnt = 0;cnt<=num;cnt++){
dp[i][j][x] = max(dp[i][j][x],dp[i][k][cnt]+dp[k+1][j][num-cnt]);
dp[i][j][x+1] = max(dp[i][j][x+1],dp[i][k][cnt]*dp[k+1][j][num-cnt]);
}
}
}
}
}
cout <<dp[1][n][m] << endl;
return 0;
}