#include <bits/stdc++.h>
using namespace std;
bool comp(pair<int, int> i, pair<int, int> j) { return (i.first < j.first); }
int a, b, h, w, n;
vector<int> r;
const int nmax = 1e6;
const int tmax = 34;
int f(int k, long long x, long long y, int p) {
  int q = 0;
  while (x < a) {
    x *= p;
    q++;
  }
  while (y < b) {
    y *= p;
    q++;
  }
  if (q <= k)
    return q;
  else
    return nmax;
}
int rec(int k, long long x, long long y, vector<int> r) {
  if (x >= a && y >= b) return k;
  if (k == min(n, tmax)) return nmax;
  if (count(r.begin() + k, r.begin() + min(n, tmax), r[k]) == min(n, tmax) - k)
    return k + f(min(n, tmax) - k, x, y, r[k]);
  int res = nmax;
  if (x < a) {
    int x1 = x * r[k];
    if (x1 > nmax) x1 = nmax;
    res = rec(k + 1, x1, y, r);
  }
  if (y < b) {
    int y1 = y * r[k];
    if (y1 > nmax) y1 = nmax;
    res = min(res, rec(k + 1, x, y1, r));
  }
  return res;
}
int main() {
  cin >> a >> b >> h >> w >> n;
  vector<int> r;
  for (int i = 0; i < n; i++) {
    int x;
    cin >> x;
    r.push_back(x);
  }
  sort(r.rbegin(), r.rend());
  int ans = rec(0, h, w, r);
  ans = min(ans, rec(0, w, h, r));
  if (ans >= nmax)
    cout << -1;
  else
    cout << ans;
}
