#include <bits/stdc++.h>
using namespace std;
const int MOD = (int)998244353;
const int N = 200005;
const double PI = 4 * atan(1);
const double eps = 1e-7;
const long long oo = 1e10;
const int K = 26;
long long a, b, h, w;
int n;
long long ai[N];
unordered_map<long long, long long> maa;
set<long long> ss;
int main() {
  ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  cin >> a >> b >> h >> w >> n;
  for (int i = 0; i < n; i++) cin >> ai[i];
  sort(ai, ai + n);
  reverse(ai, ai + n);
  n = (n < 34 ? n : 34);
  long long res = 50;
  for (int j = 0; j < 2; j++) {
    long long ans = 50;
    ss.clear();
    maa.clear();
    if (w >= a && h >= b) {
      cout << 0;
      return 0;
    }
    long long nw = (w + a - 1) / w;
    long long nh = (h + b - 1) / h;
    int si = (n + 1) / 2;
    int l = 0;
    ss.insert(1e18);
    for (int k = 0; k < 2; k++) {
      if (ans < 50) break;
      for (int len = 1; len <= si; len++) {
        if (ans < 50) break;
        for (int mask = 0; mask < (1 << len); mask++) {
          if (ans < 50) break;
          long long p1 = 1;
          long long p2 = 1;
          for (int bit = 0; bit < len; bit++) {
            if (mask & (1 << bit)) {
              p1 *= ai[l + bit];
              p1 = (p1 < 1e6 ? p1 : 1e6);
            } else {
              p2 *= ai[l + bit];
              p2 = (p2 < 1e6 ? p2 : 1e6);
            }
          }
          if (p1 >= nw && p2 >= nh && k == 0) {
            ans = (ans < len ? ans : len);
          }
          if (len == si && k == 0) {
            maa[p1] = p2;
            maa[p2] = p1;
            ss.insert(p1);
            ss.insert(p2);
          }
          if (k == 1) {
            long long z = (nw + p1 - 1) / p1 - 1;
            long long x = *ss.upper_bound(z);
            if (x == 1e18) continue;
            long long y = maa[x];
            if (y * p2 >= nh && x * p1 >= nw) {
              ans = (ans < len + l ? ans : len + l);
            }
          }
        }
      }
      l += si;
      si = n - si;
    }
    res = (ans < res ? ans : res);
    swap(w, h);
  }
  if (res == 50) {
    cout << -1;
    return 0;
  }
  cout << res;
  return 0;
}
