#include using namespace std; const int MX = 10000000; 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 < MX * 2){ if (d[v + 1] == -1){ pq.push(make_pair(c + 1, v + 1)); } } 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)); } } } } cout << d[MX + T] << endl; }