Problem:
Extended Euclid Algorithm

Given positive integers a and b, find the integer solution (x, y) to ax + by = gcd(a, b), where gcd(a, b) is the greatest common divisor of a and b.

Input

a b

Two positive integers a and b are given separated by a space in a line.

Output

Print two integers x and y separated by a space. If there are several pairs of such x and y, print that pair for which |x| + |y| is the minimal (primarily) and x ≤ y (secondarily).

Constraints

1 ≤ a, b ≤ 109

Sample Input 1

4 12

Sample Output 1

1 0

Sample Input 2

3 8

Sample Output 2

3 -1

Solution in Ruby (judge verdict: Accepted)

def egcd(a, b, x0 = 1, x1 = 0, y0 = 0, y1 = 1)
  if b == 0
    return [x0, y0]
  else
    return egcd(b, a % b, x1, x0 - a / b * x1, y1, y0 - a / b * y1)
  end
end

a, b = gets.split.map(&:to_i)
puts egcd(a, b).join(" ")