finally return the board vector. but don't know how to stop the recursion once I found a solution. should be optimized.