function stepsToExit(grid) {
const size = grid.length;
const distances = AOC.gInit(size, size, Infinity);
distances[0][0] = 0;
const queue = [[0, 0]];
while (queue.length > 0) {
const [r, c] = queue.shift();
dirs.forEach(([dr, dc]) => {
const [r1, c1] = [r + dr, c + dc];
if (grid[r1]?.[c1] && distances[r1][c1] > distances[r][c] + 1) {
distances[r1][c1] = distances[r][c] + 1;
queue.push([r1, c1]);
}
});
}
return distances[size - 1][size - 1];
}