#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

#ifdef ZTDebug
#define In scanf_s
#else
#define In scanf
#endif // ZTDebug

#define Ind(d) In("%d", &d)
#define Ind2(a, b) In("%d%d", &a, &b)
#define InD(d) int d; In("%d", &d);
#define InD2(a, b) int a, b; In("%d%d", &a, &b);
#define InDN(n, v) for (auto _i = 0; _i < n; ++_i) In("%d", &v[_i]);
#define OutDNLine(n, v) for (auto _i = 0; _i < n; ++_i) printf("%d%c", *(v + _i), _i + 1 == n ? '\n' : ' ');

typedef double db;
typedef long long LL;
typedef pair<int, int> pii;

const db eps = 1e-6;
const int oo = 0x3f3f3f3f;

const int Max = 200000;
LL h[Max];

int main() {
    int n;
    LL a, b;
    cin >> n >> a >> b;
    a -= b;
    if (a == 0) while (1);

    auto sum = 0LL;
    for (auto i = 0; i < n; ++i) {
        //cin >> h[i];
        h[i] = 1000000000 -i;
        sum += h[i];
    }

    LL s = 0LL, t = sum + 1LL;
    while (s + 1LL < t) {
        auto d = (s + t) / 2LL;
        auto bd = b * d, c = 0LL;
        for (auto i = 0; i < n; ++i)
            if (h[i] > bd) {
                c += (h[i] - bd + a - 1LL) / a;
            }
#ifdef ZTDebug
        cout << d << ": " << c << endl;
#endif // ZTDebug
        if (c > d) s = d; else t = d;
    }
    cout << t << endl;

#ifdef ZTDebug
    system("pause");
#endif // ZTDebug
    return 0;
}