N, M, S, G = gets.split.map(&:to_i) INF=99999 ma = Array.new(N).map{Array.new(N,INF)} ro = Array.new(N).map{Array.new(N,[INF])} (0...M).each{|m| a, b, c = gets.split.map(&:to_i) ma[a][b]=c ro[a][b]=[a] ma[b][a]=c ro[b][a]=[b] } (0...N).each{|i| (0...N).each{|j| (0...N).each{|k| =begin if i==5 && j==6 then puts puts "ma[#{i}][#{j}]=#{ma[i][j]}, ro[#{i}][#{j}]=#{ro[i][j].join(' ')}" puts "ma[#{i}][#{k}]=#{ma[i][k]}, ro[#{i}][#{k}]=#{ro[i][k].join(' ')}" puts "ma[#{k}][#{j}]=#{ma[k][j]}, ro[#{k}][#{j}]=#{ro[k][j].join(' ')}" end =end if (ma[i][k] + ma[k][j] < ma[i][j]) || (ma[i][j]==ma[i][k] + ma[k][j] && (ro[i][k]+ro[k][j]).join("")