# Euclidean algorithm
def gcd(x, y):
    if x < y:
        x, y = y, x
    while y > 0:
        r = x % y
        x = y
        y = r
    return x

print(gcd(*map(int, input().split()))) def gcd(x, y):
    if x < y:
        x, y = y, x
    while y > 0:
        r = x % y
        x = y
        y = r
    return x gcd if x < y:
        x, y = y, x
     x < y x y x, y = y, x x y y x while y > 0:
        r = x % y
        x = y
        y = r
     y > 0 y 0 r = x % y r x % y x y x = y x y y = r y r return x x x x y y print(gcd(*map(int, input().split()))) print gcd(*map(int, input().split())) gcd *map(int, input().split()) map(int, input().split()) map int input().split() ().split () input split def gcd(x, y):
    if x < y:
        x, y = y, x
    while y > 0:
        r = x % y
        x = y
        y = r
    return x def gcd(x, y):
    if x < y:
        x, y = y, x
    while y > 0:
        r = x % y
        x = y
        y = r
    return x gcd
# Euclidean algorithm
def gcd(x, y):
    if x < y:
        x, y = y, x
    while y > 0:
        r = x % y
        x = y
        y = r
    return x

print(gcd(*map(int, input().split())))