#include using namespace std; const int MX = 10000000; const long long INF = 1000000000000000000; int main(){ int T; cin >> T; int X, A; cin >> X >> A; int Y, B; cin >> Y >> B; vector d(MX * 2 + 1, -1); priority_queue, vector>, greater>> pq; pq.push(make_pair(0, MX)); while (!pq.empty()){ long long c = pq.top().first; int v = pq.top().second; pq.pop(); if (d[v] == -1){ d[v] = c; if (v + A <= MX * 2){ if (d[v + A] == -1){ pq.push(make_pair(c + X, v + A)); } } if (v - B >= 0){ if (d[v - B] == -1){ pq.push(make_pair(c + Y, v - B)); } } } } long long ans = INF; for (int i = 0; i <= MX + T; i++){ if (d[i] != -1){ ans = min(ans, d[i] + (MX + T - i)); } } cout << ans << endl; }