# 面倒だから 点32 を 点0 に変更

require 'matrix'
require 'mathn'

N = 32 # 点の数
A, B = 5, 0 # 電位が与えられた点
VA, VB = 5, 0 # 電位

reg = DATA.map {|s| s.split(' ').map(&:to_i)}

mat = (1..N).map {[0] * N}
reg.each do |i, j|
	mat[i][i] += 1
	mat[i][j] -= 1
	mat[j][j] += 1
	mat[j][i] -= 1
end
mat[A], mat[B] = [0] * N, [0] * N
mat[A][A] = mat[B][B] = 1

v = [0] * N
v[A], v[B] = VA, VB

sol = Matrix.rows(mat).inv * Vector.elements(v)
N.times {|i| puts "#{i} #{sol[i].to_f}"}

__END__
1 2
1 6
2 3
2 7
3 4
3 8
4 5
4 9
5 10
6 7
6 11
7 8
7 12
8 9
8 13
9 10
9 14
10 15
11 12
11 16
12 13
12 17
13 14
13 22
14 15
16 17
16 18
17 19
18 19
18 23
19 20
19 24
20 21
20 25
21 22
21 26
22 27
23 24
23 28
24 25
24 29
25 26
25 30
26 27
26 31
27 0
28 29
29 30
30 31
31 0