#include <bits/stdc++.h>
using namespace std;
const int maxn = 101000;
int n, a, b, h, w, f[maxn], ans = -1;
void init() {
  ans = -1;
  for (int i = (1); i <= (n); ++i) scanf("%d", &f[i]);
  sort(f + 1, f + n + 1);
}
void dfs(long long x, long long y, int n, int sum) {
  if (x >= h && y >= w) {
    if (ans < 0 || ans > sum) ans = sum;
    return;
  }
  if (n < 1 || (ans > -1 && sum >= ans)) return;
  if (f[n] == 2) {
    if (x < h)
      dfs(x * f[n], y, n - 1, sum + 1);
    else
      dfs(x, y * f[n], n - 1, sum + 1);
    return;
  }
  if (x < h) dfs(x * f[n], y, n - 1, sum + 1);
  if (y < w) dfs(x, y * f[n], n - 1, sum + 1);
}
void work() {
  dfs(a, b, n, 0);
  dfs(b, a, n, 0);
  cout << ans << endl;
}
int main() {
  while (cin >> h >> w >> a >> b >> n) {
    init();
    work();
  }
  return 0;
}
