```ts
export function matchAt(grid: number[][], row: number, column: number, value: number): boolean {
  if (!grid || !row || !column || !value) {
    throw new Error('Invalid arguments');
  }
  
  return grid[row][column] === value;
}

export function gridFind(grid: number[][], value: number): number[] {
  for (let r = 0; r < grid.length; r++) {
    for (let c = 0; c < grid[r].length; c++) {
      if (grid[r][c] === value) {
        return [r, c];
      }
    }
  }
  
  throw new Error(`Value ${value} not found in the grid`);
}
```