def exists_position(layout, row, column):
    """
    Checks whether given row and column indices represent a valid position in
    the layout.
    Check whether row is inside the range od rows, check whether the column is
    at or below the right edge of the keypad and finally check the left edge is
    not a placeholder.
    :param layout: 2D list representing keypad layout
    :param row: row index integer
    :param column: column index integer
    :return: boolean whether the position is a valid key
    """
    return row in range(len(layout)) and \
            column in range(len(layout[row])) and \
            layout[row][column] is not None