#Greatest Common Diveser
def gcd(x, y):
    if x >= y:
        x = x % y
        if x == 0:
            return y
        return gcd(x, y)
    else:
        y = y % x
        if y == 0:
            return x
        return gcd(x, y)

x, y = map(int, input().split())
print(gcd(x, y)) def gcd(x, y):
    if x >= y:
        x = x % y
        if x == 0:
            return y
        return gcd(x, y)
    else:
        y = y % x
        if y == 0:
            return x
        return gcd(x, y) gcd if x >= y:
        x = x % y
        if x == 0:
            return y
        return gcd(x, y)
    else:
        y = y % x
        if y == 0:
            return x
        return gcd(x, y) x >= y x y x = x % y x x % y x y if x == 0:
            return y
         x == 0 x 0 return y y return gcd(x, y) gcd(x, y) gcd x y y = y % x y y % x y x if y == 0:
            return x
         y == 0 y 0 return x x return gcd(x, y) gcd(x, y) gcd x y x x y y x, y = map(int, input().split()) x map(int, input().split()) map int input().split() ().split () input split y print(gcd(x, y)) print gcd(x, y) gcd x y x, y = map(int, input().split()) map(int, input().split()) x y = map(int, input().split()) map(int, input().split()) y def gcd(x, y):
    if x >= y:
        x = x % y
        if x == 0:
            return y
        return gcd(x, y)
    else:
        y = y % x
        if y == 0:
            return x
        return gcd(x, y) def gcd(x, y):
    if x >= y:
        x = x % y
        if x == 0:
            return y
        return gcd(x, y)
    else:
        y = y % x
        if y == 0:
            return x
        return gcd(x, y) gcd
#Greatest Common Diveser
def gcd(x, y):
    if x >= y:
        x = x % y
        if x == 0:
            return y
        return gcd(x, y)
    else:
        y = y % x
        if y == 0:
            return x
        return gcd(x, y)

x, y = map(int, input().split())
print(gcd(x, y))