input: Write a python function to combine the first and last elements separately from a list of lists.
  assert combine_first_last([['x', 'y'], ['a', 'b'], ['m', 'n']]) == [['x', 'a', 'm'], ['y', 'b', 'n']]
  assert combine_first_last([[1, 2], [3, 4], [5, 6], [7, 8]]) == [[1, 3, 5, 7], [2, 4, 6, 8]]
  assert combine_first_last([['x', 'y', 'z'], ['a', 'b', 'c'], ['m', 'n', 'o']]) == [['x', 'a', 'm'], ['y', 'b', 'n'], ['z', 'c', 'o']]
output: def combine_first_last(lists):
      first_elements = [lst[0] for lst in lists]
      last_elements = [lst[1] for lst in lists]
      if len(lists[0]) > 2:
          middle_elements = [lst[2:] for lst in lists]
          combined_middle = [list(col) for col in zip(*middle_elements)]
          return [first_elements, last_elements] + combined_middle
      return [first_elements, last_elements]