import std.stdio;
import std.string;
import std.conv;
import std.typecons;
import std.algorithm;
import std.functional;
import std.bigint;
import std.numeric;
import std.array;
import std.math;
import std.range;
import std.container;
import std.ascii;
import std.concurrency;
void times(alias fun)(int n) {
    foreach(i; 0..n) fun();
}
auto rep(alias fun, T = typeof(fun()))(int n) {
    T[] res = new T[n];
    foreach(ref e; res) e = fun();
    return res;
}

int N;
long A, B;
long[] hs;
void main() {
    readf("%d %d %d\n", &N, &A, &B);
    hs = N.rep!(() => readln.chomp.to!long).sort!"a>b".array;

    long l = 0;
    long r = 10L^^15;
    while(l<r) {
        long c = (l+r)/2;

        if (f(c)) {
            r = c;
        } else {
            if (l == c) break;
            l = c;
        }
    }

    r.writeln;
}

bool f(long c) {
    long D = A-B;
    long s = c*B;

    long d = hs.filter!(a => a-s>0).map!(a => (a-s+D-1)/D).sum;
    return d <= c;
}

