#include <bits/stdc++.h>
using namespace std;
long long f, T, t0, a1, t1, p1, a2, t2, p2;
void gmin(long long &x, long long y) {
  if (y < x) x = y;
}
long long cal(long long g2, long long a0, long long T0) {
  long long A2 = min(g2 * a2, a0);
  long long T2 = A2 * t2;
  long long A0 = a0 - A2;
  long long TT = A0 * t0;
  if (TT + T2 <= T0) return 1;
  return 0;
}
int main() {
  scanf("%lld%lld%lld", &f, &T, &t0);
  scanf("%lld%lld%lld", &a1, &t1, &p1);
  scanf("%lld%lld%lld", &a2, &t2, &p2);
  if (t1 > t2) {
    swap(a1, a2);
    swap(t1, t2);
    swap(p1, p2);
  }
  if (t2 > t0) {
    t2 = t0;
  }
  long long g1 = 0, g2 = (f / a2) + (f % a2 ? 1 : 0);
  long long top = (f / a1) + (f % a1 ? 1 : 0);
  long long ANS = 1LL << 62;
  while (g1 <= top) {
    long long a0 = max(0LL, f - a1 * g1);
    long long T0 = T - min(a1 * g1, f) * t1;
    if (T0 < 0) {
      break;
    }
    while (g2 >= 0 && cal(g2, a0, T0)) {
      g2--;
    }
    if (cal(g2 + 1, a0, T0)) {
      gmin(ANS, g1 * p1 + (g2 + 1) * p2);
    }
    g1++;
  }
  if (ANS == 1LL << 62)
    puts("-1");
  else
    printf("%lld\n", ANS);
  return 0;
}
