"""
def solve(N, X):
	xmax = ymax = zmax = N
	xmin = ymin = zmin = 0

	org = [N-X, X, 0]
	pos = [N-X, X, 0]
	dir = (0, -1, 1)
	ans = 0

	while True:
		if dir == (0,-1,1):
			if pos[1]-ymin < zmax-pos[2]:
				d = pos[1]-ymin
				pos[1] -= d
				pos[2] += d
				dir = (-1,1,0)
				xmax = pos[0]
			else:
				d = zmax-pos[2]
				pos[1] -= d
				pos[2] += d
				dir = (1,0,-1)
				xmin = pos[0]
		elif dir == (1,0,-1):
			if pos[2]-zmin < xmax-pos[0]:
				d = pos[2]-zmin
				pos[2] -= d
				pos[0] += d
				dir = (0,-1,1)
				ymax = pos[1]
			else:
				d = xmax-pos[0]
				pos[2] -= d
				pos[0] += d
				dir = (-1,1,0)
				ymin = pos[1]
		elif dir == (-1,1,0):
			if pos[0]-xmin < ymax-pos[1]:
				d = pos[0]-xmin
				pos[0] -= d
				pos[1] += d
				dir = (1,0,-1)
				zmax = pos[2]
			else:
				d = ymax-pos[1]
				pos[0] -= d
				pos[1] += d
				dir = (0,-1,1)
				zmin = pos[2]
		else:
			print "error"
			break

		ans += d

		if pos==org:
			break
	return ans

for N in range(2, 17):
	print N,
	for X in range(1, N):
		print solve(N, X)/3,
	print

"""

import fractions
N, X = map(int, raw_input().split())
g = fractions.gcd(N, X)
print 3*g*(N/g-1)
