Challenge 050 ( It's very very slow to solve )