#include<bits/stdc++.h>
using namespace std;
const int N=105;
int n,m,val[2*N],sum[2*N],f1[N][N][N],f2[N][N][N];
inline int max(int a,int b){return a>b?a:b;}
inline int min(int a,int b){return a<b?a:b;}
#define fin cin
int main(){
cin>>n>>m;int len=2*n;
memset(f2,0x3f,sizeof(f2));
for(int i=1;i<=n;i++)cin>>val[i],val[n+i]=val[i]=(val[i]%10+10)%10;
for(int i=1;i<=len;i++)sum[i]=sum[i-1]+val[i];
for(int i=1;i<=len;i++)
for(int j=i;j<=len;j++)
f1[i][j][1]=f2[i][j][1]=((sum[j]-sum[i-1])%10+10)%10;
for(int l=2;l<=m;l++)
for(int i=l;i<=n;i++)
for(int j=1;j<=len-i+1;j++)
for(int k=j;k<j+i-1;k++){
f1[j][j+i-1][l]=max(f1[j][j+i-1][l],f1[j][k][l-1]*(((sum[j+i-1]-sum[k])%10+10)%10));
f2[j][j+i-1][l]=min(f2[j][j+i-1][l],f2[j][k][l-1]*(((sum[j+i-1]-sum[k])%10+10)%10));
}
int ans1{},ans2=INT_MAX;
for(int i=1;i<=len-n+1;i++)ans1=max(ans1,f1[i][i+n-1][m]),ans2=min(ans2,max(0,f2[i][i+n-1][m]));
return cout<<ans2<<endl<<ans1<<endl,0;
}
``