input: def Matrix_Operations(m1, n1, lst1, m2, n2, lst2, operation):
      """ This function takes two matrices and an operation name as inputs, and returns the resulting matrix after performing the specified operation. 
      The operations supported are 'add', 'sub', 'mul', and 'transpose'.
      
      >>> Matrix_Operations(2, 2, [1, 2, 3, 4], 2, 2, [5, 6, 7, 8], 'add')
      [[6, 8], [10, 12]]
      
      >>> Matrix_Operations(2, 2, [1, 2, 3, 4], 2, 2, [5, 6, 7, 8], 'sub')
      [[-4, -4], [-4, -4]]
      
      >>> Matrix_Operations(2, 2, [1, 2, 3, 4], 2, 2, [5, 6, 7, 8], 'mul')
      [[19, 22], [43, 50]]
      
      >>> Matrix_Operations(2, 2, [1, 2, 3, 4], 2, 2, [5, 6, 7, 8], 'transpose')
      [[1, 3], [2, 4]]
      """
output:     if operation == 'add':
          return [[lst1[i*n1+j] + lst2[i*n2+j] for j in range(n1)] for i in range(m1)]
      elif operation == 'sub':
          return [[lst1[i*n1+j] - lst2[i*n2+j] for j in range(n1)] for i in range(m1)]
      elif operation == 'mul':
          result = [[0 for _ in range(n2)] for _ in range(m1)]
          for i in range(m1):
              for j in range(n2):
                  for k in range(n1):
                      result[i][j] += lst1[i*n1+k] * lst2[k*n2+j]
          return result
      elif operation == 'transpose':
          return [[lst1[j*m1+i] for j in range(m1)] for i in range(n1)]
      else:
          raise ValueError("Unsupported operation")