(use srfi-1)(let q[(p(iota(read)))(o())](if(null?(map(rec,x(or(any(rec,i(or(=(+ x i)(set! *(ref o(- #0=(length o)i))))(=(- x i)*)))(iota #0# 1))(q(delete x p)`(,@o,x))))p))(print(string-join(map x->string o)))))