#include <bits/stdc++.h>
using namespace std;
int n;
long long x, y, f[10000010];
long long min(long long x, long long y) {
  if (x == 0) return y;
  if (y == 0) return x;
  if (x > y)
    return y;
  else
    return x;
}
int main() {
  cin >> n >> x >> y;
  f[1] = x;
  for (int i = 1; i < n; i++) {
    f[i + 1] = min(f[i + 1], f[i] + x);
    if (2 * i <= n) f[i * 2] = min(f[i * 2], f[i] + y);
    if (2 * i - 1 <= n) f[i * 2 - 1] = min(f[i * 2 - 1], f[i] + x + y);
    if (2 * i + 1 <= n) f[i * 2 + 1] = min(f[i * 2 + 1], f[i] + x + y);
  }
  cout << f[n] << endl;
  return 0;
}
