#include using namespace std; long long gcd( long long m, long long n ) { // 引数に0がある場合は0を返す if ( ( 0 == m ) || ( 0 == n ) ) return 0; // ユークリッドの方法 while( m != n ) { if ( m > n ) m = m - n; else n = n - m; } return m; } int main(void){ // Here your code ! long long n,m; cin >> n >> m; long long count=0; long long g=gcd(m,n); n/=g; m/=g; while(1){ if(n>m){ count+=n/m; n-=m*(n/m); }else{ swap(n,m); count++; } if(m==1){ count+=n-1; cout<