#include <bits/stdc++.h>
const int MAXN = 1e7 + 5;
const int inf = 1e9 + 7;
const int N = 5000;
using namespace std;
int n;
long long x, y, f[MAXN];
long long F(int a) {
  if (f[a] != -1) return f[a];
  if (a & 1) {
    f[a] = F(a - 1) + x;
    long long m = (a + 1) >> 1;
    if (x * m > y)
      f[a] = min(f[a], F(m) + y + x);
    else
      f[a] = min(f[a], F(m) + x * m + x);
  } else {
    long long m = a >> 1;
    f[a] = F(m) + min(x * m, y);
  }
  return f[a];
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cin >> n >> x >> y;
  for (int i = 1; i <= n + 1; ++i) f[i] = -1;
  f[1] = x;
  cout << F(n);
  return 0;
}
