#include <bits/stdc++.h>
using namespace std;
template <class T>
T MAX(T a, T b) {
  return a > b ? a : b;
}
template <class T>
T MIN(T a, T b) {
  return a < b ? a : b;
}
template <class T>
T GCD(T a, T b) {
  return b ? GCD(b, a % b) : a;
}
template <class T>
T LCM(T a, T b) {
  return a / GCD(a, b) * b;
}
const int maxn = 100010;
int main() {
  long long d, k, a, b, t;
  cin >> d >> k >> a >> b >> t;
  if (d <= k) {
    cout << d * a << endl;
    return 0;
  }
  long long ans;
  ans = k * 1LL * a;
  d -= k;
  if (t + k * a < k * b) {
    ans += (k * a + t) * (d / k);
    d -= k * (d / k);
  } else {
    ans += (k * b) * (d / k);
    d -= k * (d / k);
  }
  ans += min(d * b, t + d * a);
  cout << ans << endl;
  return 0;
}
