#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:1024000000,1024000000")
using namespace std;
const long long K = 32000;
int main() {
  long long n, Va, Vb, Wa, Wb, ans = 0;
  cin >> n >> Va >> Vb >> Wa >> Wb;
  if (Wa < K && Wb < K) {
    if (Va * Wb > Vb * Wa) {
      swap(Wa, Wb);
      swap(Va, Vb);
    }
    for (long long i = 0; i < Wb && i * Wa <= n; i++) {
      long long j = (n - i * Wa) / Wb;
      ans = max(ans, i * Va + j * Vb);
    }
    cout << ans << endl;
    return 0;
  }
  if (Wa < K) {
    swap(Wa, Wb);
    swap(Va, Vb);
  }
  for (long long i = 0; i * Wa <= n; i++) {
    long long j = (n - i * Wa) / Wb;
    ans = max(ans, i * Va + j * Vb);
  }
  cout << ans << endl;
  return 0;
}
