7700 - PE - Panda University   

Description

熊貓大學不僅頒發了學生證給圓仔,也頒發給許許多多隻其他的熊貓,並且在山坡上蓋了N棟新的系館。原本這N棟系館兩兩都有路直接相連,但是圓仔和他的朋友們實在太重又太好動,把一堆路都踩壞了(壞到完全無法修復的地步!!),只剩下M條道路勉強還可以行走。動物保護協會要求熊貓大學必須要重新整修這M條道路,否則會危害到熊貓的安全。熊貓大學整天嚷嚷著沒有錢,當然不願意M條道路都維修,學校希望維修費越少越好,他們只願意花最少的錢,讓每棟系館都有路可以通到所有其他的系館(不一定要直接相連)。學校找來了承包商負責這項工程,修一條道路的價格,和這條路連結的兩棟系館的熊貓數量有關,假設系館a的熊貓數量是Num_a, 系館b的熊貓數量是Num_b,則維修連結a和b的道路所需經費為max(Num_a, Num_b)。
但這個承包商特別喜歡質數,所以替學校打了折扣:如果Num_a或Num_b至少有一個是質數,則維修費用只需要min(Num_a, Num_b)。現在給你N棟系館的熊貓數量,和這M條邊的資訊,你可以算出學校最少要花多少錢維修道路嗎?

Input

多組測資。
每組測資第一列為兩個整數N和M,N代表系館的數量,系館編號為1~N。M代表需要維修的道路數量。1<=N<=500, 1<=M<=N*N/2。
第二列有N個整數,分別代表第1~N棟系館的熊貓數量,每棟系館最多有1000000隻熊貓。
接下來M列為M條道路的資訊。每列有兩個整數a, b,代表這條道路連接第a棟和第b棟系館。 1<=a,b<=N。
測資間會有一空白列。

Output

每組測資請輸出一列,為熊貓大學最少需要支付的維修金額。若不管在這M條道路中選擇多少條,學校都無法讓每棟系館都有路通到所有其他的系館,請輸出"No Solution"。

Sample Input  Download

Sample Output  Download

Tags




Discuss