#include <bits/stdc++.h>
using namespace std;
inline int read() {
  register int f = 1, x = 0;
  char c = getchar();
  while (c < '0' || c > '9') {
    if (c == '-') f = -1;
    c = getchar();
  }
  while (c >= '0' && c <= '9')
    x = (x << 3) + (x << 1) + (c ^ '0'), c = getchar();
  return f * x;
}
const int N = 1e7 + 1;
long long f[N];
signed main() {
  register int n = read(), x = read(), y = read();
  for (register int(i) = (1); (i) <= (n); ++(i)) {
    if (i & 1) {
      f[i] = min(f[i - 1] + x, f[(i + 1) / 2] + x + y);
      continue;
    }
    f[i] = min(f[i - 1] + x, f[i / 2] + y);
  }
  printf("%lld\n", f[n]);
  return 0;
}
