#include <iostream>
#include <cmath>
#include <stdio.h>
#include <cstring>
#include <cmath>
using namespace std;

void _130() {
    int n, x;
    int l[100];
    cin >> n >> x;
    for (int i = 0; i < n; ++i) { 
        cin >> l[i];
    }

    int d = 0;
    for (int i = 0; i < n; ++i) {
        d = d + l[i];
        // cout << d << endl;
        if (d > x) {
            cout << i + 1 << endl;
            return;
        }
    }
    cout << n + 1 << endl;
}

void _131() {
    int n, l;
    cin >> n >> l;

    int sum = (l - 1) * n + (1 + n) * n / 2;
    // cout << sum << endl;

    int taste = 0;
    int min_taste = 100;
    for (int i = 0; i < n; ++i) {
        taste = l + (i + 1) - 1;
        // cout << "taste" << taste << endl;
        if (abs(taste) < abs(min_taste))
            min_taste = taste;
        // cout << min_taste << endl;
    }
    cout << sum - min_taste << endl;
}

void _132() {
    int n;
    cin >> n;
    int p[20];
    for (int i = 0; i < n; ++i) 
        cin >> p[i];

    int count = 0;
    int second_value = 0;
    for (int i = 0; i < n - 2; ++i) {
        if ((p[i] < p[i + 1]) && (p[i + 1] < p[i + 2])){
            // cout << "1:" << p[i] << " " << p[i + 1] << " " << p[i + 2] << endl;
            count++;
        }
        else if ((p[i] > p[i + 1]) && (p[i + 1] > p[i + 2])){
            // cout << "2:" << p[i] << " " << p[i + 1] << " " << p[i + 2] << endl;
            count++;
        }
    }
    cout << count << endl;
}

void _133() {
    int n, d;
    cin >> n >> d;
    int x[10][10];
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < d; ++j) {
            cin >> x[i][j];
        }
    }

    int count = 0;
    float distance = 0;
    for (int i = 0; i < n - 1; ++i) {
        for (int j = i + 1; j < n; ++j) {
            distance = 0;
            for (int k = 0; k < d; ++k) {
                distance += pow(x[i][k] - x[j][k], 2);
                // cout << x[i][k] << " " << x[j][k] << " " << distance << endl;
            }
            distance = pow(distance, 0.5);
            // cout << distance << endl;

            if (abs(distance - ceil(distance)) <= 1e-6)
                count++;
        }
    }

    cout << count << endl;
}

void _134() {
    int n, d;
    cin >> n >> d;

    cout << (n + 2 * d + 1 -1) / (2 * d + 1) << endl;
}

void _135() {
    int n, p[50];
    cin >> n;
    int conflict_count = 0;
    for (int i = 0; i < n; ++i) {
        cin >> p[i];
        if (p[i] != (i + 1))
            conflict_count++;
    }

    if (conflict_count != 0 && conflict_count != 2){
        cout << "NO" << endl;
        return;
    }

    cout << "YES" << endl;
}

void _136() {
    int n;
    cin >> n;

    char str[10];
    int count = 0;
    for (int i = 0; i < n; ++i) {
        sprintf(str, "%d", i + 1);
        if (strlen(str) % 2 == 1)
            count++;
    }
    cout << count << endl;
}

void _137() {
    int k, x;
    cin >> k >> x;

    int x_min = max(-1000000, x - (k - 1));
    int x_max = min(1000000, x + (k - 1));
    for (int i = x_min; i <= x_max; ++i) {
        cout << i;
        if (i != x_max)
            cout << " ";
        else
            cout << endl;
    }
}

#include <iomanip>
void _138() {
    int n;
    int a;
    cin >> n;
    double inverse_sum = 0;
    for (int i = 0; i < n; ++i) {
        cin >> a;
        inverse_sum += 1 / (double)a;
    }
    cout << fixed << setprecision(10) << 1 / inverse_sum << endl;
    // cout << 1 / inverse_sum << endl;

}

void _139() {
    int a, b;
    cin >> a >> b;

    // if (b <= a) {
    //     cout << 1 << endl;
    //     return;
    // }

    if (b == 1) {
        cout << 0 << endl;
        return;
    }
    int num = a;
    for (int i = 0; ; ++i) {
        if (num >= b) {
            cout << i + 1 << endl;
            break;
        }
        num += (a - 1);
    }
}

int main()
{
    _139();
    return 0;
}



Measured memory_bytes: 256