#include <bits/stdc++.h>
using namespace std;
long long bigmod(long long b, int p) {
  if (p == 0) return 1;
  long long my = bigmod(b, p / 2);
  my *= my;
  my %= 1000000007ll;
  if (p & 1) my *= b, my %= 1000000007ll;
  return my;
}
int setb(int n, int pos) { return n = n | (1 << pos); }
int resb(int n, int pos) { return n = n & ~(1 << pos); }
bool checkb(int n, int pos) { return (bool)(n & (1 << pos)); }
long long dp[10000005], n, x, y;
long long fuck() {
  dp[0] = 0;
  for (long long pos = 1; pos <= n; pos++) {
    dp[pos] = x + dp[pos - 1];
    if (pos & 1) {
      if (pos == 1) continue;
      long long prv = (pos + 1) / 2;
      dp[pos] = min(dp[pos], y + x + dp[prv]);
    } else {
      long long prv = pos / 2;
      dp[pos] = min(dp[pos], y + dp[prv]);
    }
  }
  return dp[n];
}
int main() {
  scanf("%lld %lld %lld", &n, &x, &y);
  long long ret = fuck();
  printf("%lld", ret);
  printf("\n");
  return 0;
}
