#include <bits/stdc++.h>
int n, x, y, LIM;
int q[20000010];
long long dis[20000010];
short vis[20000010];
void spfa() {
  int head = 1, tail = 1;
  int i, sn, fn;
  long long val;
  for (i = 1; i <= LIM; i++) {
    dis[i] = 1LL * i * x;
    q[tail++] = i;
    vis[i] = 1;
  }
  while (head != tail) {
    sn = q[head++];
    for (i = 0; i < 3; i++) {
      if (!i) {
        fn = sn + 1;
        val = dis[sn] + x;
      } else if (i == 1) {
        fn = sn - 1;
        val = dis[sn] + x;
      } else {
        fn = sn << 1;
        val = dis[sn] + y;
      }
      if (fn <= 0 || fn > LIM) continue;
      if (dis[fn] <= val) continue;
      dis[fn] = val;
      if (vis[fn]) continue;
      vis[fn] = 1;
      q[tail++] = fn;
      if (tail > 20000007) tail = 1;
    }
    vis[sn] = 0;
    if (head > 20000007) head = 1;
  }
}
int main() {
  int i;
  scanf("%d%d%d", &n, &x, &y);
  LIM = n << 1;
  spfa();
  printf("%I64d", dis[n]);
  return 0;
}
