#include <bits/stdc++.h>
using namespace std;
long long dp[10000005];
int n, a1, a2;
int main() {
  while (~scanf("%d%d%d", &n, &a1, &a2)) {
    memset(dp, 0x3f3f3f3f, sizeof(dp));
    dp[1] = a1;
    for (int i = 2; i <= n; i++) {
      if (i % 2 == 0) {
        dp[i] = min(dp[i - 1] + a1, dp[i / 2] + a2);
      } else {
        dp[i] = min(dp[i - 1] + a1, dp[(i + 1) / 2] + a1 + a2);
      }
    }
    printf("%I64d\n", dp[n]);
  }
  return 0;
}
