
# gcdBinaryIt.py 
# Fig. 6.10 
# input: 13 7 or 15 400


def gcdBinaryIt(u,v):
  x = u; y = v
  k = 1
  while (x%2 == 0) and (y%2 == 0): # even
    x = x//2
    y = y//2
    k *= 2
  while x != y:
    while x%2 == 0:
      x = x//2
    while y%2 == 0:
      y = y//2
    if x > y:
      x -= y
    if y > x:
      y -= x
  return x*k

u,v = map(int, input("u v=? ").split())
print(gcdBinaryIt(u,v))
