#include #include #define rep(i, a, b) for (ll i = (ll)(a); i < (ll)(b); i++) using namespace atcoder; using namespace std; typedef long long ll; int ans; __int128 mygcd(__int128 a, __int128 b) { ans++; if (a == b) return 0; if (b == 0) { return a; } else { return mygcd(b, a % b); } } __int128 f(int k) { __int128 x = 1; rep(i, 0, k) x *= 10; return x; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout << fixed << setprecision(12); ans = 0; __int128 a, b; ll na, nb; char c; cin >> na >> c; int sz = 0; if (c == '.') { string s; cin >> s; sz = s.size(); nb = stoll(s); } else { nb = 0; } a = na; b = nb; a *= f(sz); a += b; b = f(sz); cerr << (ll)a << '/' << (ll)b << endl; while (!(a == 0 || b == 0)) { ans++; swap(a, b); a %= b; cerr << (ll)a << '/' << (ll)b << endl; } cout << ans << endl; }