<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def cell_key_val_gen(iterable, shape, topleft=(0, 0)):
 """Generator of row, col, value tuple from iterable of iterables it: Iterable of iterables \tMatrix that shall be mapped on target grid shape: Tuple of Integer \tShape of target grid topleft: 2-tuple of Integer \tTop left cell for insertion of it """


    top, left = topleft

    for __row, line in enumerate(iterable):
        row = top + __row
        if row >= shape[0]:
            break

        for __col, value in enumerate(line):
            col = left + __col
            if col >= shape[1]:
                break

            yield row, col, value