Hey thanks for the solution, but is the worst case really n^2? Seems more like it would be n^4. Imagine a large grid of all 1s. You'll immediately enter the first tile and do a dfs across all tiles (n^2). But then when you exit the function you're still needing to loop across every time even though you've already covered it. Am I missing something here?