sub f{ if($#_){ my@a=f(splice@_,@_/2); @b=f(splice@_); push@_,shift@{print("? $a[0] $b[0]\n")*<>?\@a:\@b}while@a*@b; push@_,@a,@b; } @_; } @a=f++$|..<>; print"! $#a @a"