n=gets.to_i stay=(1..n).map{gets.to_i} d=(1..n).map{(1..n).to_a} (0...n).map{|i| (0...n).map{|j| d[i][j]=1e12.to_i} d[i][i]=0 } m=gets.to_i (1..m).map{ a,b,c=gets.split.map(&:to_i) d[a][b]=d[b][a]=c } (0...n).map{|k| (0...n).map{|i| (0...n).map{|j| d[i][j] = [ d[i][j], d[i][k] + d[k][j] ].min }}} ans = 1e13.to_i (1..(n-2)).map{|i| (1..(n-2)).map{|j| if i != j r = d[0][i] + d[i][j] + d[j][n-1] r += stay[i] + stay[j] ans = [ans, r].min end } } p ans