#include<bits/stdc++.h>
#define int long long
#define int128 __int128
using namespace std;
const int N=1e2+25;
int n,m;
int a[N],s[N],p[N];
int128 f[N][N][N];
inline int sum(int l,int r){return s[r]-s[l-1];}
int max(int a,int b){return a>b?a:b;}
int module(int a){
if(a>0)return (a%10);
else return ((10-(abs(a)%10))%10);
}
inline void solve1(){
memset(f,0,sizeof(f));
for(int i=1;i<=2*n;i++){
for(int j=i;j<=2*n;j++)
f[i][j][1]=module(sum(i,j));
}
for(int len=2;len<=2*n;len++){
for(int l=1;l+len-1<=2*n;l++){
int r=l+len-1;
for(int k=l;k<r;k++){
for(int i=2;i<=min(len,m);i++){
for(int p=1;p<i;p++)
f[l][r][i]=max(f[l][k][p]*f[k+1][r][m-p],f[l][r][i]);
}
}
}
}
int ans=0;
for(int i=1;i<=n;i++){
ans=max(ans,f[i][i+n-1][m]);
}
cout<<ans<<endl;
}
inline void solve2(){
memset(f,0x3f,sizeof(f));
for(int i=1;i<=2*n;i++){
for(int j=i;j<=2*n;j++)
f[i][j][1]=module(sum(i,j));
}
for(int len=2;len<=2*n;len++){
for(int l=1;l+len-1<=2*n;l++){
int r=l+len-1;
for(int k=l;k<r;k++){
for(int i=2;i<=min(len,m);i++){
for(int p=1;p<i;p++)
f[l][r][i]=min(f[l][k][p]*f[k+1][r][m-p],f[l][r][i]);
}
}
}
}
int ans=INT_MAX;
for(int i=1;i<=n;i++){
ans=min(ans,f[i][i+n-1][m-1]);
}
cout<<max(ans,0)<<endl;
}
signed main(){
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=n+1;i<=2*n;i++)
a[i]=a[i-n];
for(int i=1;i<=2*n;i++)
s[i]=s[i-1]+a[i];
for(int i=1;i<=2*n;i++){
for(int j=i;j<=2*n;j++)
f[i][j][1]=module(sum(i,j));
}
solve2();
solve1();
}