P1388
#include<bits/stdc++.h>
#define cul(a,b,c) (c==1)?(a+b):(a*b)
using namespace std;
int n,k,f[15][15],a[15],s[15],point[15];
int cnt=0;
int main(){
cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>a[i];
if(cnt+1<=n-k-1&&cnt+1<n)point[++cnt]=1;
else if(cnt+1<n) point[++cnt]=2;
}
int ans=0;
do{
for(int i=1;i<=n;i++) f[i][i]=a[i];
for(int len=1;len<=n;len++){
for(int l=1;l+len-1<=n;l++){
int r=l+len-1;
for(int k=l;k<r;k++){
f[l][r]=max(f[l][r],cul(f[l][k],f[k+1][r],point[k]));
}
}
}
ans=max(ans,f[1][n]);
// cout<<ans<<" ";
memset(f,0,sizeof f);
}while(next_permutation(point+1,point+n));
cout<<ans;
return 0;
}