#include<bits/stdc++.h>
using namespace std;
int n, m, a[103], s[103];
int maxx = INT_MIN, minn = INT_MAX;
int f[110][24], d[110][24];
void pre() {
for (int i = 1; i <= 2 * n; i++) a[i] = a[i] % 10;
for (int i = 1; i <= 2 * n; i++) a[i] = (a[i] + 10) % 10;
}
void dfs(int t) {
for (int i = t; i <= t + n - 1; i++)
for (int j = 1; j <= m; j++)
f[i][j] = 1e9, d[i][j] = 0;
for (int i = t; i <= t + n - 1; i++)
f[i][0] = d[i][0] = (s[i] - s[t - 1]) % 10;
for (int j = 1; j <= m; j++)
for (int i = t + j; i <= t + n - 1; i++)
for (int k = t; k < i; k++) {
f[i][j] = min(f[i][j], f[k][j - 1] * ((s[i] - s[k]) % 10));
d[i][j] = max(d[i][j], d[k][j - 1] * ((s[i] - s[k]) % 10));
}
minn = min(minn, f[t + n - 1][m - 1]);
maxx = max(maxx, d[t + n - 1][m - 1]);
}
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], a[i + n] = a[i];
pre();
for (int i = 1; i <= 2 * n; i++)
s[i] = s[i - 1] + a[i];
for (int i = 1; i <= n; i++) dfs(i);
cout << minn << '\n' << maxx << '\n';
return 0;
}