# gcdBinary.py 
# Fig. 6.9 
# input: 13 7 or 15 400

def gcdBinary(u,v):
  if u == v:
    return u
  if (u%2 == 0) and (v%2 == 0):  # even
    return 2*gcdBinary(u//2, v//2)
  if (u+v)%2 == 1:
    if v%2 == 1:
      return gcdBinary(u//2, v)
    else:
      return gcdBinary(u, v//2)
  if (u%2 == 1) and (v%2 == 1):
    if u > v:
      return gcdBinary(u-v, v)
    elif v > u:
      return gcdBinary(u, v-u)

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