#include <bits/stdc++.h>
inline int Rand() { return (rand() << 16) | rand(); }
using namespace std;
const int N = 501, NN = 100001, SMALL = 105, ALPH = 28, BIG = 1000001;
int n;
unsigned long long x, y, dp[BIG * 30];
int main() {
  cin >> n >> x >> y;
  for (int i = int(1); i <= int(n * 3); i++) dp[i] = 2000000000000000000ll;
  int now = 1;
  dp[1] = x;
  while (now <= n) {
    for (int i = int(now); i <= int(now * 2); i++)
      if (i % 2 == 0) dp[i] = min(dp[i], dp[i / 2] + y);
    for (int i = int(now); i <= int(now * 2); i++)
      dp[i] = min(dp[i], dp[i - 1] + x);
    for (int i = int(now * 2); i >= int(now); i--)
      dp[i] = min(dp[i], dp[i + 1] + x);
    now *= 2;
  }
  cout << dp[n];
  return 0;
}
