#include <bits/stdc++.h>
using namespace std;
bool visit[20000007];
long long a[20000007];
int main() {
  int n, x, y;
  scanf("%d %d %d", &n, &x, &y);
  for (int i = 1; i <= 2 * n; i++) a[i] = a[i - 1] + x;
  memset(visit, 0, sizeof visit);
  visit[1] = 1;
  queue<int> q;
  q.push(1);
  while (!q.empty()) {
    int id = q.front();
    q.pop();
    for (int j = id * 2; j <= 2 * n; j = j * 2) {
      a[j] = min(a[j], a[j / 2] + y);
      a[j - 1] = min(a[j - 1], a[j] + x);
      a[j + 1] = min(a[j + 1], a[j] + x);
      if (j - 1 >= 1 && visit[j - 1] == 0) q.push(j - 1), visit[j - 1] = 1;
      if (j + 1 <= 2 * n && visit[j + 1] == 0) q.push(j + 1), visit[j + 1] = 1;
    }
  }
  cout << a[n] << endl;
}
