input: Write a function to generate a matrix C where each element is the product of the corresponding elements of the given matrices A and B. If the matrices A and B are not of the same dimensions, return "Matrix multiplication not possible".
  
  def elementwiseMatrixProduct(A, B):
      if len(A) != len(B) or len(A[0]) != len(B[0]):
          return "Matrix multiplication not possible"
  
      C = [[0 for i in range(len(A[0]))] for j in range(len(A))]
  
      for i in range(len(A)):
          for j in range(len(A[0])):
              C[i][j] = A[i][j] * B[i][j]
  
      return C
  
  assert elementwiseMatrixProduct([[3, 4], [1, 2]], [[7, 5], [0, 1]]) == [[21, 20], [0, 2]]
  assert elementwiseMatrixProduct([[1, 2], [3, 4]], [[5, 6], [7, 8]]) == [[5, 12], [21, 32]]
  assert elementwiseMatrixProduct([[1, 2, 3], [4, 5, 6]], [[2, 3, 4], [5, 6, 7]]) == [[2, 6, 12], [20, 30, 42]]
  assert elementwiseMatrixProduct([[1, 2, 3], [4, 5, 6]], [[1, 2], [3, 4]]) == "Matrix multiplication not possible"
  assert elementwiseMatrixProduct([], []) == []
output: def elementwiseMatrixProduct(A, B):
      if len(A) != len(B) or len(A[0]) != len(B[0]):
          return "Matrix multiplication not possible"
  
      C = [[0 for i in range(len(A[0]))] for j in range(len(A))]
  
      for i in range(len(A)):
          for j in range(len(A[0])):
              C[i][j] = A[i][j] * B[i][j]
  
      return C