def sum_first_n(numbers, n):
    """
    What comes in:
      -- An sequence of numbers.
      -- A nonnegative integer   n   that is less than or equal to
           the length of the given sequence.
    What goes out:
      Returns the sum of the first   n   numbers in the given sequence,
      where   n   is the second argument.
    Side effects: None.
    Examples:
      If numbers is   [48, -10, 50, 5], then:
      - sum_first_n(numbers, 0) returns 0  (the sum of NO numbers is 0)
      - sum_first_n(numbers, 1) returns 48
      - sum_first_n(numbers, 2) returns 38
      - sum_first_n(numbers, 3) returns 88
      - sum_first_n(numbers, 4) returns 93
    Type hints:
      :type numbers:   list of tuple (of numbers)
      :type n: int
    """
    # -------------------------------------------------------------------------
    # DONE: 9. Implement and test this function.
    #          Tests have been written for you (above).
    #
    # RESTRICTION:
    #    You may NOT use the built-in  sum   function
    #    in IMPLEMENTING this function.
    #      -- The TESTING code above does use   built_ins.sum
    #         as an ORACLE in TESTING this function, however.
    # -------------------------------------------------------------------------
    total = 0
    for k in range(n):
        total = total + numbers[k]
    return total