input: Write a python function that takes a 0-indexed m x n integer matrix and produces a new 0-indexed matrix called result. Initialize result to matrix, then substitute each occurrence of the value -1 with the maximum element present in its respective column.
  
  Return the result matrix.
  
  Examples:
  >>> matrix = [[1,2,-1],[4,-1,6],[7,8,9]]
  [[1,2,9],[4,8,6],[7,8,9]]
  >>> matrix = [[3,-1],[5,2]]
  [[3,2],[5,2]]
  
  Constraints:
  m == len(matrix)
  n == len(matrix[i])
  2 <= m, n <= 50
  -1 <= matrix[i][j] <= 100
  Every column will have at least one non-negative integer.
output: def substitute_negatives(matrix):
      m, n = len(matrix), len(matrix[0])
      max_in_columns = [max(row[j] for row in matrix) for j in range(n)]
      for i in range(m):
          for j in range(n):
              if matrix[i][j] == -1:
                  matrix[i][j] = max_in_columns[j]
      return matrix