#最大公約数
def gcd(a,b):
    if a==b:
        return b
    elif b==1:
        return 1
    else:
        return gcd(b,a%b)

def func(a,b):
    if a<=b :
        if b%a > 0:
            return 2*(b//a)*a+func(a,b%a)
        else:
            return 2*(b//a)*a-1
    else:
        return func(b,a)
N,X = map(int,input().split())

dis =N 
dis += func(N-X,X)
print(dis)