#include <bits/stdc++.h>
using namespace std;
const double sn = 1e-6;
const int siz = 100005;
int n, k;
pair<int, int> p[205];
long long arr[205];
vector<vector<short>> dp[200];
int solve(int i, int j, int l) {
  if (l < 0 || (j == k && l == 0)) return 0;
  if (i == n || (k - j) * 26 < l || n - i < k - j || j == k) return -2;
  if (dp[i][j][l] != -1) return dp[i][j][l];
  int v1 = solve(i + 1, j, l), v2 = solve(i + 1, j + 1, l - p[i].second);
  if (v2 != -2) v2 += p[i].first;
  return dp[i][j][l] = max(v1, v2);
}
int main() {
  scanf("%d%d", &n, &k);
  for (int i = 0; i < n; i++) {
    scanf("%I64d", &arr[i]);
    long long v1 = arr[i], v2 = arr[i];
    while (v1 % 2 == 0) {
      p[i].first++;
      v1 /= 2;
    }
    while (v2 % 5 == 0) {
      p[i].second++;
      v2 /= 5;
    }
  }
  for (int i = 0; i < n; i++) {
    for (int j = 0; j <= min(i, k); j++) {
      dp[i].push_back({});
      for (int l = 0; l <= 26 * (k - j); l++) {
        dp[i][j].push_back(-1);
      }
    }
  }
  int ans = -2;
  for (int i = 0; i <= k * 26; i++) {
    ans = max(ans, min(i, solve(0, 0, i)));
  }
  printf("%d\n", ans);
  return 0;
}
