Solution with tricks