#include <bits/stdc++.h>
const double PI = acos(-1.0);
using namespace std;
long long bigmod(long long b, long long p) {
  if (p == 0) return 1;
  long long my = bigmod(b, p / 2);
  my *= my;
  my %= 1000000007;
  if (p & 1) my *= b, my %= 1000000007;
  return my;
}
int setb(int n, int pos) { return n = n | (1 << pos); }
int resb(int n, int pos) { return n = n & ~(1 << pos); }
bool checkb(int n, int pos) { return (bool)(n & (1 << pos)); }
long long a, b, h, w, n, ara[100005];
long long dp[36][100005], visit[36][100005], cs;
long long A, B;
long long F(long long pos, long long sum) {
  if (sum >= A) return sum;
  if (pos == 0) return (long long)1e15;
  if (visit[pos][sum] == cs) return dp[pos][sum];
  long long ret = F(pos - 1, sum);
  ret = min(ret, F(pos - 1, sum * ara[pos]));
  visit[pos][sum] = cs;
  return dp[pos][sum] = ret;
}
long long Fuck() {
  A = a / h;
  if (a % h) A++;
  B = b / w;
  if (b % w) B++;
  if (A == 1 && B == 1) return 0;
  long long i, tot = 1;
  long long cum[50];
  cum[0] = 1;
  for (i = 1; i <= n; i++) cum[i] = cum[i - 1] * ara[i];
  long long low = 1, high = n, mid, ans = 100;
  cs++;
  long long my = F(n, 1);
  while (low <= high) {
    mid = (low + high) / 2;
    tot = cum[mid];
    cs++;
    long long my = F(mid, 1);
    long long flag = 0;
    if (my != (long long)1e15) {
      long long baki = tot / my;
      if (baki >= B) flag = 1;
    }
    if (flag) {
      ans = mid;
      high = mid - 1;
    } else
      low = mid + 1;
  }
  return ans;
}
int main() {
  long long i;
  scanf("%lld %lld", &a, &b);
  scanf("%lld %lld", &h, &w);
  scanf("%lld", &n);
  for (i = 1; i <= n; i++) {
    scanf("%lld", &ara[i]);
  }
  sort(ara + 1, ara + n + 1);
  reverse(ara + 1, ara + n + 1);
  long long cur = 1, id = n;
  for (i = 1; i <= n; i++) {
    cur *= ara[i];
    if (cur >= ((a / h) + ((a % h) != 0))) {
      id = i;
      break;
    }
  }
  cur = 1;
  for (i = id + 1; i <= n + 1; i++) {
    if (i > n) id = n;
    cur *= ara[i];
    if (cur >= ((b / w) + ((b % w) != 0))) {
      id = i;
      break;
    }
  }
  n = id;
  long long ret = Fuck();
  swap(a, b);
  ret = min(ret, Fuck());
  if (ret >= 100) ret = -1;
  printf("%lld", ret);
  printf("\n");
  return 0;
}
