#include <bits/stdc++.h>
using namespace std;
int n;
long long c0, c1;
long long get_c(long long m, long long n) {
  long long v = 1;
  for (int i = 1; i <= n; i++) v = v * (m - i + 1) / i;
  return v;
}
long long calc(long long c) {
  if (c < 0) return 0;
  long long tmp = 0;
  for (int i = 0; (1ll << i) <= n; i++) {
    if (c - c1 * i < 0) break;
    long long mx;
    if (c0)
      mx = (c - c1 * i) / c0;
    else
      return n;
    tmp += get_c(i + mx + 1, i + 1);
    if (tmp >= n) return tmp;
  }
  return tmp;
}
int main() {
  scanf("%d%lld%lld", &n, &c0, &c1);
  if (c0 > c1) swap(c0, c1);
  n--;
  long long l = 0, r = 1, tmp;
  for (; calc(r) < n; r <<= 1)
    ;
  for (long long mid; l <= r;) {
    mid = l + r >> 1;
    if (calc(mid) >= n)
      tmp = mid, r = mid - 1;
    else
      l = mid + 1;
  }
  long long extra = n - calc(tmp - 1);
  long long ans = tmp * extra + n * (c0 + c1);
  tmp--;
  if (c1 && tmp >= 0) {
    long long mx = tmp / c1;
    for (int i = 0; i <= mx; i++)
      ans += c1 * i * get_c(i + (tmp - c1 * i) / c0 + 1, i + 1);
    for (int i = 0; i <= mx; i++)
      ans += c0 * (i + 1) * get_c(i + (tmp - c1 * i) / c0 + 1, i + 2);
  }
  printf("%lld\n", ans);
  return 0;
}
