#include <bits/stdc++.h>
using namespace std;
const long long inf = 1e18;
long long first, T, mt;
long long t[2], p[2], a[2];
long long get(long long ile, long long czas) {
  if (ile == 0) {
    return 0;
  }
  if (min(ile * mt, ile * t[1]) > czas) {
    return inf;
  }
  if (ile * mt <= czas) {
    return 0;
  }
  long long st = 0, en = ile, mid = (st + en) / 2, res = inf;
  while (st <= en) {
    long long il = min(ile, mid * a[1]);
    if (il * t[1] + (ile - il) * mt <= czas) {
      res = min(res, mid);
      en = mid - 1;
    } else {
      st = mid + 1;
    }
    mid = (st + en) / 2;
  }
  return res * p[1];
}
int main() {
  scanf("%lld%lld%lld", &first, &T, &mt);
  for (int i = 0; i < 2; i++) {
    scanf("%lld%lld%lld", a + i, t + i, p + i);
  }
  if (t[0] > t[1]) {
    swap(a[0], a[1]);
    swap(t[0], t[1]);
    swap(p[0], p[1]);
  }
  if (min(mt, t[0]) * first > T) {
    printf("-1\n");
    return 0;
  }
  if (mt * first <= T) {
    printf("0\n");
    return 0;
  }
  long long res = inf;
  for (long long i = 0; (i - 1) * a[0] * t[0] + 1 <= T; i++) {
    long long ile = min(first, a[0] * i);
    long long cena = i * p[0] + get(first - ile, T - ile * t[0]);
    res = min(res, cena);
  }
  printf("%lld\n", res);
  return 0;
}
