n=[1]+([0]*9+[1])*8 eval %w(m=$<.read.split.map{|i|i.to_f*5}; k|a=m[k+l=k*9]; j|m[j+=l]/=a;n[j]/=a}; i|b=m[k+i*=9];i==l|| j|n[i+j]-=b*n[l+j];m[i+j]-=b*m[l+j]}}})*'"\x00\x01\x03\x04\x02\x05\x06\x07\x08".each_byte{|' 81.times{|i|$><<'%.f%c'%[n[i]*5+0.1,' '[i%9/8]]}
Note that non-ascii characters in the above source code will be escaped (such as \x9f).