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)

a,b=gets.split.map(&:to_i)
r0=a
r1=b
a0=1
a1=0
b0=0
b1=1
while(r1>0)
    q1=r0/r1
    r2=r0%r1
    a2=a0-q1*a1
    b2=b0-q1*b1
    r0=r1
    r1=r2
    a0=a1
    a1=a2
    b0=b1
    b1=b2
end
puts "#{a0} #{b0}"