#include using namespace std; pair get(vector C){ int N = C.size(); reverse(C.begin(), C.end()); long long P = 1, Q = 0; for (long long x : C){ swap(P, Q); P += Q * x; } return make_pair(P, Q); } int main(){ long long P, Q; cin >> P >> Q; vector C; while (Q > 1){ C.push_back(P / Q); P %= Q; swap(P, Q); } C.push_back(P); C.back()--; pair ans1 = get(C); C.pop_back(); pair ans2 = get(C); cout << ans1.first + ans1.second + ans2.first + ans2.second << endl; }