#include <bits/stdc++.h>
using namespace std;
const int MaxN = 10000050;
int N, X, Y;
long long dp[MaxN], Ans = 1LL << 61;
pair<long long, int> Q[MaxN];
int front, tail;
int main() {
  scanf("%d%d%d", &N, &X, &Y);
  front = 0;
  tail = -1;
  dp[1] = X;
  Q[++tail] = make_pair(3LL * X, 1);
  for (int i = 2; i <= N; ++i) {
    while (front <= tail && Q[front].second < (int)(i / 2) + (i % 2)) ++front;
    dp[i] = min(dp[i - 1] + X, Q[front].first + Y - (long long)i * X);
    while (front <= tail && dp[i] + 2LL * i * X < Q[tail].first) --tail;
    Q[++tail] = make_pair(dp[i] + 2LL * i * X, i);
  }
  printf("%I64d", dp[N]);
  return 0;
}
