#include<iostream>
#include<cstring>
#include<cstdio>
#define ll long long
using namespace std;
const ll N=60,MAX=2.1e9;
ll n,m,a[N];
long long s[N],ans1=MAX,ans2;
long long dp1[N][N],dp2[N][N];
int main(){
cin>>n>>m;
for(ll i=1;i<=n;i++){
cin>>a[i];a[i]%=10;
if(a[i]<0)a[i]+=10;
}
for(ll t=1;t<=n;t++){
ans2=max(ans2,dp1[n][m]);
for(ll i=0;i<=n;i++){
for(ll j=0;j<=m;j++)
dp1[i][j]=MAX;
}
memset(dp2,0,sizeof(dp2));
dp1[0][0]=dp2[0][0]=1;a[n+1]=a[1];
for(ll i=1;i<=n;i++)a[i]=a[i+1];
for(ll i=1;i<=n;i++)
s[i]=s[i-1]+a[i];
for(ll i=1;i<=n;i++)
for(ll j=1;j<=m;j++)
for(ll k=0;k<i;k++){
ll x=dp1[k][j-1]*((s[i]-s[k])%10);
ll y=dp2[k][j-1]*((s[i]-s[k])%10);
dp1[i][j]=min(x,dp1[i][j]);
dp2[i][j]=max(y,dp2[i][j]);
}
ans1=min(ans1,dp1[n][m]);
ans2=max(ans2,dp2[n][m]);
}
cout<<ans1<<endl<<ans2<<endl;
return 0;
}