#include <bits/stdc++.h>
using namespace std;
long long solve(long long stops, long long d, int k, int a, int b, int t) {
  long long dst = min(d, (stops + 1LL) * k);
  long long rem = d - dst;
  long long spent = dst * a + stops * t + rem * b;
  return spent;
}
int main(int argc, char const* argv[]) {
  long long d;
  scanf("%lld", &d);
  int k, a, b, t;
  scanf("%d", &k);
  scanf("%d %d", &a, &b);
  scanf("%d", &t);
  long long ktimes = d % k == 0 ? d / k - 1LL : d / k;
  long long lo = 0;
  long long hi = ktimes;
  for (int i = 0; i < 300; i += 1) {
    long long lpos = lo + (hi - lo) / 3LL;
    long long rpos = hi - (hi - lo) / 3LL;
    long long lval = solve(lpos, d, k, a, b, t);
    long long rval = solve(rpos, d, k, a, b, t);
    if (lval > rval)
      lo = lpos;
    else
      hi = rpos;
  }
  long long ans = solve(lo, d, k, a, b, t);
  for (long long i = lo + 1; i <= hi; i += 1) {
    ans = min(ans, solve(i, d, k, a, b, t));
  }
  printf("%lld\n", ans);
  return 0;
}
