#include int gcd( int a, int b){ if(b == 0){ return a; } if(a > b){ return gcd(b,a%b); }else{ return gcd(a,b%a); } } int saiki(int m, int n, int depth){ if( n == 1){ return depth + m-1; } if( m == 1){ return depth + n; } if( m > n ){ return saiki(m-n, n, depth+1); }else{ return saiki(n, m, depth+1); } } int main(void){ int g,m,n; scanf("%d %d", &m, &n); g = gcd(m,n); m /= g; n /= g; printf("%d\n", saiki(m,n,0)); return 0; }