





def      lowerCAmelCase_ (       __a		)     ->		list:







  """simple docstring"""





  if len(__a		) <= 1:
    return [tuple(__a		)]

  lowerCamelCase__:      Dict			  =[]

  def generate(__a	,    __a		):
    if k == 1:
      res.append(tuple(arr[:]		)		)
      return

    generate(k - 1	,    __a		)

    for i in range(k - 1		):
      if k % 2 == 0:  # k is even
        lowerCamelCase__  ,					lowerCamelCase__:      Tuple			  =arr[k - 1], arr[i]
      else:  # k is odd
        lowerCamelCase__  ,					lowerCamelCase__:      str			  =arr[k - 1], arr[0]
      generate(k - 1	,    __a		)

  generate(len(__a		)	,    __a		)
  return res


if __name__ == "__main__":
     __A									=				input("Enter numbers separated by a comma:\n").strip()
     __A									=				[int(item) for item in user_input.split(",")]
     print(heaps(arr))



"""simple docstring"""





class     _UpperCAmelCase:



		def __init__(					self)       ->       Optional[Any]:






							'''simple docstring'''
							_UpperCamelCase							 =  {}



		def 						UpperCAmelCase							(					self)       ->       None:






							'''simple docstring'''
							print(self.vertex)
							for i in self.vertex:
												print(__a				,		''' -> '''				,		''' -> '''.join([str(__a) for j in self.vertex[i]]))



		def 						UpperCAmelCase							(					self				,		__a				,		__a)       ->       None:






							'''simple docstring'''
							# check if vertex is already present,
							if from_vertex in self.vertex:
												self.vertex[from_vertex].append(__a)
							else:
												# else make a new vertex
												_UpperCamelCase							 =  [to_vertex]



		def 						UpperCAmelCase							(					self)       ->       None:






							'''simple docstring'''
							# visited array for storing already visited nodes
							_UpperCamelCase							 =  [False] * len(self.vertex)

							# call the recursive helper function
							for i in range(len(self.vertex)):
												if not visited[i]:
																	self.dfs_recursive(__a				,		__a)




		def 						UpperCAmelCase							(					self				,		__a				,		__a)       ->       None:






							'''simple docstring'''
							# mark start vertex as visited
							_UpperCamelCase							 =  True

							print(__a				,		end=''' ''')

							# Recur for all the vertices that are adjacent to this node
							for i in self.vertex:
												if not visited[i]:
																	self.dfs_recursive(__a				,		__a)


if __name__ == "__main__":
				_a														=		Graph()
				g.add_edge(0, 1)
				g.add_edge(0, 2)
				g.add_edge(1, 2)
				g.add_edge(2, 0)
				g.add_edge(2, 3)
				g.add_edge(3, 3)

				g.print_graph()
				print("""DFS:""")
				g.dfs()

				# OUTPUT:
				# 0  ->  1 -> 2
				# 1  ->  2
				# 2  ->  0 -> 3
				# 3  ->  3
				# DFS:
				#  0 1 2 3






