<｜begin▁of▁sentence｜>### Instruction:
Given the Power grid Graph which you can read from a GML file named power.gml, can you use the Louvain method in cdlib to perform community detection? And can you compute the surprise metric to evaluate the quality of the detected communities?

Notes: You need to print the surprise score that evaluates the quality of the community structure.
### Response:
import networkx as nx
from cdlib import algorithms, evaluation

# Read the power grid graph
G = nx.read_gml('power.gml')

# Perform community detection using the Louvain method
communities = algorithms.louvain(G)

# Compute the surprise quality metric
surprise_score = evaluation.surprise(G, communities)

# Output the surprise score
print(surprise_score.score)
<|EOT|>
