#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;   }   