#include <iostream>
using namespace std;
int main()
{
int a,m;
cin >> a >> m;
int prom = m / a; // конечное значение промежутка i -> макс.кол-во пиратов
int x; // количество монет между вторым и предпоследним пиратом
int sum; // кол-во всех монет, которые находятся по формуле и сравниваются с имеющимся кол-ом
int schet = 0; // разчет коэф.для пер-ой x
int otvet = -1; // ответ задачи
for (int i = 2; i < prom; ++i)
{
for (int j = 1; j < i; ++j) { schet += j; }
x = a * (i - 1) + schet;
sum = a + x + (a + i) * 2;
if (sum == m) {otvet = i + 1; break;}
// else {continue;}
}
cout << otvet << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkKewogICAgaW50IGEsbTsKICAgIGNpbiA+PiBhID4+IG07CiAgICBpbnQgcHJvbSA9IG0gLyBhOyAvLyDQutC+0L3QtdGH0L3QvtC1INC30L3QsNGH0LXQvdC40LUg0L/RgNC+0LzQtdC20YPRgtC60LAgaSAtPiDQvNCw0LrRgS7QutC+0Lst0LLQviDQv9C40YDQsNGC0L7QsgogICAgaW50IHg7IC8vINC60L7Qu9C40YfQtdGB0YLQstC+INC80L7QvdC10YIg0LzQtdC20LTRgyDQstGC0L7RgNGL0Lwg0Lgg0L/RgNC10LTQv9C+0YHQu9C10LTQvdC40Lwg0L/QuNGA0LDRgtC+0LwKICAgIGludCBzdW07IC8vINC60L7Quy3QstC+INCy0YHQtdGFINC80L7QvdC10YIsINC60L7RgtC+0YDRi9C1INC90LDRhdC+0LTRj9GC0YHRjyDQv9C+INGE0L7RgNC80YPQu9C1INC4INGB0YDQsNCy0L3QuNCy0LDRjtGC0YHRjyDRgSDQuNC80LXRjtGJ0LjQvNGB0Y8g0LrQvtC7LdC+0LwKICAgIGludCBzY2hldCA9IDA7IC8vINGA0LDQt9GH0LXRgiDQutC+0Y3RhC7QtNC70Y8g0L/QtdGALdC+0LkgeAogICAgaW50IG90dmV0ID0gLTE7IC8vINC+0YLQstC10YIg0LfQsNC00LDRh9C4CiAgICBmb3IgKGludCBpID0gMjsgaSA8IHByb207ICsraSkKICAgICAgICB7CiAgICAgICAgICAgIGZvciAoaW50IGogPSAxOyBqIDwgaTsgKytqKSB7IHNjaGV0ICs9IGo7IH0KICAgICAgICAgICAgeCA9IGEgKiAoaSAtIDEpICsgc2NoZXQ7CiAgICAgICAgICAgIHN1bSA9IGEgKyB4ICsgKGEgKyBpKSAqIDI7CiAgICAgICAgICAgIGlmIChzdW0gPT0gbSkge290dmV0ID0gaSArIDE7IGJyZWFrO30KICAgICAgICAgICAgLy8gZWxzZSB7Y29udGludWU7fQogICAgICAgIH0KICAgIGNvdXQgPDwgb3R2ZXQgPDwgZW5kbDsKfQo=