Polynomial-time optimal pretty-printing combinators with choice