#include <iostream>
#include <cstring>
using namespace std;
const long long N = 1e10;
long long a[1020],x[1020]; //a前缀和,x读入
long long n, m, maxn = -N, minn = N;
long long f1[120][120][120],f2[120][120][120]; //f1最小,f2最大
int main()
{
cin >> n >> m;
memset(f1, N, sizeof(f1));
memset(f1, -N, sizeof(f2));
for (int i = 1; i <= n; i++)
cin >> x[i], a[i] = a[i - 1] + x[i];
for (int i = n + 1; i <= 2 * n ; i++)
a[i] = a[i - 1] + x[i - n];
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
f1[i][j][1] = f2[i][j][1] = ((a[j] - a[i - 1]) % 10 + N) % 10;
for (int i = 1; i <= 2 * n; i++)
for (int j = i + 1; j <= 2 * n; j++)
for (int l = 2; l <= m; l++)
for (int k = i; k < j; k++)
f1[i][j][l] = min(f1[i][j][l], f1[i][k][l - 1] * f1[k + 1][j][1]), f2[i][j][l] = max(f2[i][j][l], f2[i][k][l - 1] * f2[k + 1][j][1]);
for (int i = 1; i <= n; i++)
maxn = max(maxn, f2[i][i + n - 1][m]), minn = min(minn, f1[i][i + n - 1][m]);
printf("%d\n%d", minn, maxn);
return 0;
}