function adjacentNumbers(grid, r, c) {
const [nRows, nCols] = [grid.length, grid[0].length];
const hashes = new Set();
const hash = ([row, left, num]) => `${row},${left},${num}`;
for (const [dr, dc] of offsets) {
const [nr, nc] = [r + dr, c + dc];
const cell = grid[nr]?.[nc];
if (cell !== undefined && !isNaN(cell)) {
hashes.add(hash(getNumber(grid, nr, nc)));
}
}
return hashes;
}