#include <bits/stdc++.h>
using namespace std;
const int inf = 1 << 28;
int main() {
  long long c, h1, h2, w1, w2;
  cin >> c >> h1 >> h2 >> w1 >> w2;
  long long x, y, ans = -1;
  if (w2 > w1) {
    swap(w2, w1);
    swap(h2, h1);
  }
  if (w1 * w1 > c) {
    for (int x = 0; x <= c / w1; x++) {
      y = (c - w1 * x) / w2;
      ans = max(ans, x * h1 + y * h2);
    }
  } else {
    if (1.0 * h1 / w1 > 1.0 * h2 / w2) {
      swap(w1, w2);
      swap(h1, h2);
    }
    for (int x = 0; x <= w2; x++) {
      y = (c - w1 * x) / w2;
      ans = max(ans, x * h1 + y * h2);
    }
  }
  cout << ans << endl;
  return 0;
}
