Like this new solution: backtrack