def largest_negative_number(seq_seq):
    """
    Returns the largest NEGATIVE number in the given sequence of
    sequences of numbers.  Returns None if there are no negative numbers
    in the sequence of sequences.

    For example, if the given argument is:
        [(30, -5, 8, -20),
         (100, -2.6, 88, -40, -5),
         (400, 500)
        ]
    then this function returns -2.6.

    As another example, if the given argument is:
      [(200, 2, 20), (500, 400)]
    then this function returns None.

    Preconditions:
      :type seq_seq: (list, tuple)
    and the given argument is a sequence of sequences,
    where each subsequence contains only numbers.
    """
    # -------------------------------------------------------------------------
    # DONE: 5. Implement and test this function.
    #   Note that you should write its TEST function first (above).
    #
    # CHALLENGE: Try to solve this problem with no additional sequences
    #   being constructed (so the SPACE allowed is limited to the
    #   give sequence of sequences plus any non-list variables you want).
    # -------------------------------------------------------------------------
    largest = 0
    for k in range(len(seq_seq)):
        for j in range(len(seq_seq[k])):
            if seq_seq[k][j] < 0 and largest == 0:
                largest = seq_seq[k][j]
            if seq_seq[k][j] < 0 and seq_seq[k][j] > largest:
                largest = seq_seq[k][j]
    if largest != 0:
        return largest