#include <bits/stdc++.h>
using namespace std;
const double PI = 2 * acos(0.0);
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
mt19937_64 rng_64(chrono::steady_clock::now().time_since_epoch().count());
const string DIGITS = "0123456789";
const string ALPH = "abcdefghijklmnopqrstuvwxyz";
template <class T0, class T1>
inline ostream &operator<<(ostream &out, pair<T0, T1> &a) {
  return out << "{" << a.first << ", " << a.second << "}";
}
template <class T0, class T1, class T2>
inline ostream &operator<<(ostream &out, tuple<T0, T1, T2> &a) {
  return out << "{" << get<0>(a) << ", " << get<1>(a) << ", " << get<2>(a)
             << "}";
}
template <class T0, class T1, class T2, class T3>
inline ostream &operator<<(ostream &out, tuple<T0, T1, T2, T3> &a) {
  return out << "{" << get<0>(a) << ", " << get<1>(a) << ", " << get<2>(a)
             << ", " << get<3>(a) << "}";
}
template <class T>
inline ostream &operator<<(ostream &out, vector<T> &a) {
  out << "[";
  for (long long i = 0; i < (long long)(a.size()); ++i)
    out << a[i] << vector<string>{", ", "]  "}[i + 1 == a.size()];
  return out;
}
ostream &operator<<(ostream &out, pair<long long, long long> a) {
  cout << a.first << " " << a.second;
  return out;
}
void smain();
signed main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cout << setprecision(12) << fixed;
  smain();
  return 0;
}
const long long N = 4e5 + 100;
long long pref[N];
long long get(long long l, long long r) {
  if (l > r) return 0;
  if (l == 0) return pref[r];
  return pref[r] - pref[l - 1];
}
long long solve() {
  long long n;
  cin >> n;
  vector<long long> p(n);
  for (long long i = 0; i < (long long)(n); ++i) {
    cin >> p[i];
  }
  long long x, a, y, b;
  cin >> x >> a >> y >> b;
  long long k;
  cin >> k;
  sort(p.rbegin(), p.rend());
  pref[0] = p[0];
  for (long long i = 1; i < n; ++i) {
    pref[i] = pref[i - 1] + p[i];
  }
  map<long long, long long> cnt;
  for (long long i = 1; i <= n; ++i) {
    if (i % a == 0 && i % b == 0) {
      cnt[-(x + y)]++;
    } else if (i % a == 0) {
      cnt[-x]++;
    } else if (i % b == 0) {
      cnt[-y]++;
    }
    long long cur = 0;
    long long gath = 0;
    for (auto item : cnt) {
      long long len = item.second;
      gath += get(cur, min(i - 1, cur + len - 1)) * -item.first / 100;
      cur += len;
    }
    if (gath >= k) return i;
  }
  return -1;
}
void smain() {
  long long tests;
  cin >> tests;
  while (tests--) {
    cout << solve() << '\n';
  }
}
