<｜begin▁of▁sentence｜>### Instruction:
Given a graph with the edge set [(1, 2), (1, 3), (2, 3), (3, 4), (4, 5), (5, 1)], how would you generate a new graph whose nodes represent the maximal cliques of the original graph and where an edge joins two cliques if they are not disjoint?
### Response:
import networkx as nx

# Create a graph
G = nx.Graph()
G.add_edges_from([(1, 2), (1, 3), (2, 3), (3, 4), (4, 5), (5, 1)])

# Generate the maximal clique graph
clique_graph = nx.make_max_clique_graph(G, create_using=nx.Graph)

print('Nodes of Max Clique Graph:', clique_graph.nodes())
print('Edges of Max Clique Graph:', clique_graph.edges())
<|EOT|>
