function parse(input) {
const transpose = (grid) => {
const transposed = [];
for (let col = 0; col < grid[0].length; col++) {
let newRow = "";
for (let row = 0; row < grid.length; row++) {
newRow += grid[row][col];
}
transposed.push(newRow);
}
return transposed;
};
const rowGrids = input.split("\n\n").map((block) => block.split("\n"));
const colGrids = rowGrids.map((grid) => transpose(grid));
return {
n: rowGrids.length,
rGrids: rowGrids.map((grid) => grid.map(toNumber)),
cGrids: colGrids.map((grid) => grid.map(toNumber))
};
}