#include <bits/stdc++.h>
using namespace std;
long long mod = 1e9 + 7;
long long min(long long a, long long b) { return (a < b) ? a : b; }
long long max(long long a, long long b) { return (a > b) ? a : b; }
long long fp(long long a, long long b) {
  if (b == 0) return 1;
  long long x = fp(a, b / 2);
  x = (x * x) % mod;
  if (b & 1) x = (x * a) % mod;
  return x;
}
const long long N = 1e7 + 7;
long long dp[N];
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long n, x, y;
  cin >> n >> x >> y;
  dp[1] = 0;
  for (long long i = 1; i <= n; i++) {
    dp[i] = dp[i - 1] + x;
    if (i % 2 == 0) {
      dp[i] = min(dp[i], dp[i / 2] + y);
    } else {
      dp[i] = min({dp[i], dp[i / 2] + x + y, dp[i / 2 + 1] + x + y});
    }
  }
  cout << dp[n];
}
