#include #include #include #include #include #include #include #include #include #include #include #define MOD (1000000007l) #define ll long long #define rep(i, n) for (ll i = 0; i < (n); i++) using namespace std; ll calc_gcd(ll a, ll b) { while (true) if (a) b %= a, swap(a, b); else return b; } ll calc_lcm(ll a, ll b) { return a * b / calc_gcd(a, b); } void solve() { ll A, B; cin >> A >> B; if (A == 1 or B == 1) { cout << 0 << endl; return; } ll gcd = calc_gcd(A, B); if (gcd != 1) { cout << -1 << endl; return; } ll lcm = calc_lcm(A, B); vector foo(lcm+1, true); foo[0] = false; rep (i, B + 1) rep (j, A + 1) { ll tmp = A * i + B * j; if (tmp <= lcm) foo[tmp] = false; } ll ans = 0; for (auto a: foo) if (a) ans++; cout << ans << endl; } int main(void) { cin.tie(0); ios::sync_with_stdio(false); cout.precision(12); cout << fixed; solve(); return 0; }