#include <bits/stdc++.h>
using namespace std;
const int maxn = 5e5 + 5;
int main() {
  long long v, w1, w2, v1, v2;
  cin >> v >> w1 >> w2 >> v1 >> v2;
  long long x = max(v1, v2);
  if (x * x >= v) {
    if (v1 < v2) swap(v1, v2), swap(w1, w2);
    long long ans = 0;
    for (int i = 0; i <= v / v1; i++) {
      ans = max(ans, i * w1 + (v - i * v1) / v2 * w2);
    }
    cout << ans << endl;
  } else {
    if (1.0 * w1 / v1 > 1.0 * w2 / v2) {
      swap(v1, v2), swap(w1, w2);
    }
    long long ans = 0;
    for (int i = 0; i < v2; i++) {
      ans = max(ans, i * w1 + (v - i * v1) / v2 * w2);
    }
    cout << ans << endl;
  }
  return 0;
}
