#include <bits/stdc++.h>
using namespace std;
const long long INF = 1e18;
long long szx, tx, px, t;
long long solve(long long SZ, long long T) {
  if (T < 0) return INF;
  if (SZ <= 0) return 0;
  if (t * SZ <= T) return 0;
  long long DT = t * SZ - T, dt = t - tx;
  long long x = (DT + dt - 1) / dt;
  x = (x + szx - 1) / szx;
  if ((x * szx >= SZ + szx) || (min(SZ, szx * x) * tx > T)) return INF;
  return x * px;
}
long long SZ, T;
int main() {
  while (scanf("%lld %lld %lld", &SZ, &T, &t) == 3) {
    long long ans = INF, szy, ty, py;
    scanf("%lld %lld %lld", &szx, &tx, &px);
    scanf("%lld %lld %lld", &szy, &ty, &py);
    if (t * SZ <= T) {
      printf("0\n");
      continue;
    }
    if (tx > ty) {
      swap(tx, ty);
      swap(szx, szy);
      swap(px, py);
    }
    if (tx >= t) {
      printf("-1\n");
      continue;
    }
    if (ty >= t)
      ans = min(ans, solve(SZ, T));
    else {
      for (int y = (0); y < (int)(1e7 + 6); y++) {
        if (szy * y >= szy + SZ) break;
        ans = min(ans, py * y + solve(SZ - szy * y, T - min(SZ, szy * y) * ty));
      }
      swap(tx, ty);
      swap(szx, szy);
      swap(px, py);
      for (int y = (0); y < (int)(1e7 + 6); y++) {
        if (szy * y >= szy + SZ) break;
        ans = min(ans, py * y + solve(SZ - szy * y, T - min(SZ, szy * y) * ty));
      }
    }
    if (ans < INF)
      printf("%lld\n", ans);
    else
      printf("-1\n");
  }
  return 0;
}
