Much more neat solution
still dfs