func_code_string: #include <bits/stdc++.h>   using namespace std;   long long A[200005], dp[300005];   int main() {     long long a, b, h, w;     scanf( %lld%lld%lld%lld , &a, &b, &h, &w);     long long n;     scanf( %lld , &n);     long long i, j;     for (i = 1; i <= n; i++) {       scanf( %lld , A + i);     }     if (h >= a && w >= b) {       printf( 0 );       return 0;     }     if (h >= b && w >= a) {       printf( 0 );       return 0;     }     sort(A + 1, A + n + 1);     reverse(A + 1, A + n + 1);     dp[1] = 1;     long long prod = 1;     for (i = 1; i <= min(n, 40LL); i++) {       prod *= A[i];       for (j = 1; j <= 300000; j++) {         if ((long long)j * A[i] <= 300000) {           dp[j * A[i]] |= dp[j];         }       }       for (j = 1; j <= 300000; j++) {         if (!dp[j]) continue;         if (prod % j != 0) continue;         long long rem = prod / j;         if (h * j >= a && w * rem >= b) {           printf( %lld , i);           return 0;         }         if (h * j >= b && w * rem >= a) {           printf( %lld , i);           return 0;         }       }       if (prod >= 2e10) break;     }     printf( -1 );   }   