```python
import string

from typing import List


def cell_name(row: int, col: int) -> str:
    if col < 0 or row < 0:
        raise ValueError("Row and column indices must be non-negative")
    letters = []
       while col >= 0:
        col -= 1
        letters.append(string.ascii_uppercase[col % 26])
    return ''.join(reversed(l)) + chr(row + ord('A')    

def grid_cells(rows: int, cols: int) -> List[str]:
    if rows < 0 or cols < 0:
        raise ValueError("Rows and columns must be non-negative")
    return [cell_name(r,            col) for                for col in range(cols))
            ]
``````