func main() var p: int :: cui@inputInt() var q: int :: cui@inputInt() if(p = q) do cui@print("1\n2 2\n") ret end if var gcd: int :: math@gcd(p, q) do p :/ gcd do q :/ gcd ; n = a * c ; m = b * c ; p = a + b ; q = a * b * c var ansN: []int :: #[0]int var ansM: []int :: #[0]int for a(1, p - 1) var b: int :: p - a if(a * b > q) break a end if if(q % (a * b) = 0) var c: int :: q / (a * b) var n: int :: a * c var m: int :: b * c do ansN :~ [n] do ansM :~ [m] end if end for do cui@print("\{^ansN}\n") for i(0, ^ansN - 1) var n: int :: ansN[i] var m: int :: ansM[i] do cui@print("\{n} \{m}\n") end for end func