YES 2.2 gcd x y gcd y x gcd x y gcd y x if_gcd true s x s y gcd minus x y s y if_minus false s x y minus x y minus s x y if_minus le s x y s x y le s x s y le x y gcd s x s y if_gcd le y x s x s y minus s x y le s x y if_gcd false s x s y minus y x if_gcd true s x s y minus x y gcd s x s y le y x if_gcd false s x s y gcd minus y x s x if_gcd false s x s y gcd minus y x s x gcd x y gcd y x gcd s x s y if_gcd le y x s x s y if_gcd true s x s y gcd minus x y s y true 1 le 2 1 2 1 s 1 1 3 le 2 0 minus 2 1 1 gcd 2 0 false 0 6 true 0 3 0 0 1 if_minus 3 0 minus 2 0 if_minus 3 2 1 if_gcd 3 0 if_gcd 3 2 3 0 gcd 2 1 2 1 if_gcd true s x s y gcd minus x y s y gcd s x s y if_gcd le y x s x s y if_gcd false s x s y gcd minus y x s x minus 0 y 0 minus s x y if_minus le s x y s x y if_minus false s x y s minus x y if_minus true s x y 0 gcd x y gcd y x true if_gcd true s x s y minus x y false if_gcd false s x s y minus y x false minus s x y if_minus le s x y s x y if_minus false s x y minus x y true 1 le 2 1 2 1 s 1 1 4 le 2 0 minus 2 1 1 gcd 2 0 false 0 7 true 0 3 0 0 1 if_minus 3 2 0 minus 2 1 3 if_minus 3 2 1 if_gcd 3 0 if_gcd 3 0 gcd 2 1 2 1 if_minus false s x y minus x y minus s x y if_minus le s x y s x y minus 0 y 0 minus s x y if_minus le s x y s x y if_minus false s x y s minus x y if_minus true s x y 0 minus s x y le s x y false gcd s x s y le y x false le s x s y le x y true 1 le 2 1 2 1 s 1 1 4 le 2 1 0 minus 2 1 1 gcd 2 0 false 0 7 true 0 3 0 0 1 if_minus 3 0 minus 2 3 if_minus 3 2 1 if_gcd 3 0 if_gcd 3 0 gcd 2 1 2 1 le s x s y le x y minus 0 y 0 minus s x y if_minus le s x y s x y if_minus false s x y s minus x y if_minus true s x y 0 gcd x y gcd y x true NaTT 1.7