import math proc getchar_unlocked():char {. importc:"getchar_unlocked",header: "" .} proc scan(): int = while true: var k = getchar_unlocked() if k < '0' or k > '9': break else: result = 10 * result + k.ord - '0'.ord # 15 35 => 50 15*35 # 5*(3 7 => 10 21) # 6 10 => 2*(3 5) => 2*(8 15*2) # => 16 60 # 60 100 => 20*(3 5) => 160 6000 => 8 30 let a = scan() let b = scan() let g = a.gcd(b) if g mod 2 == 0 and (a div g + b div g) mod 2 == 0: echo g * 2 else:echo g