## Minimum Spanning Tree by emoken

```H
\$!d
s/.*//
x
s/\n//
h
s/^\(\w* \w* \).*\$/\1/gm
:Z
s/\b\(\w\+\)\b\(.*\b\1\b\)/\2/
tZ
s/[ \n]\+/\n/g
s/^\n*\|\n*\$//g
x
s/^\(\w*\) \(\w*\) \(.*\)\$/\3,\1,\2/gm
s/\$/ /gm
:a
/\n/!bq
s/^\(.*\)\n\(.*\)\$/@\1: %\2/gm
:b
s/^[^%@:\n]*\$/~&/gm
s/^\(.*\)@\(.*\): % *\$/~\1\2/gm
s/^\(.*\)@: \(.*\)%\(.*\)/~\1\2\3/gm
/@/!be
x
s/\$/\n=m/
x
H
s/^~.*\$/~/gm
s/^.*@\(\w*\)\(,\w*\)*.*%\(\w*\)\(,\w*\)*.*\$/\1 \3/gm
x
s/\$/\n=n/
x
H
:1
s/^ \$/=/gm
s/^ .*/</gm
s/.* \$/>/gm
s/^[0-9]\|\b[0-9]//gm
t1
s/\n//g
G
s/\n.*=n//
x
s/\n=n.*//
x
:2
s/\`=\(.*\)\n\(.*\)\$/\1#\2/m
s/\`<\(.*\)\n\(.*\)\$/\1#</m
s/\`>\(.*\)\n\(.*\)\$/\1#>/m
s/\`~\(.*\)\n.*\$/\1#~/m
t2
s/#/\n/g
s/\n//
s/^/#/gm
:3
s/#\(.\)\(.*\) \(.\)\(.*\)/\1\3 #\2 \4/gm
t3
s/#//g
:4
s/00/=/g
s/0[1-9]/</g
s/[1-9]0/>/g
y/123456789/012345678/
/[0-9]/b4
s/ //gm
s/=*\(.\).*/\1/gm
s/\n//g
G
s/\n.*=m/#/
x
s/\n=m.*//
x
:m
s/^[<=]\(.*\)\n\(.*\)@\(\(\w\|,\)*\) \(.*\)%\(\(\w\|,\)*\)/\1-\2\3 @\5%\6/m
s/^>\(.*\)\n\(.*\)@\(\(\w\|,\)*\)\(.*\)%\(\(\w\|,\)*\) /\1-\2\6 @\3\5%/m
s/^~\([^\n]*\)\n~/\1-/
tm
s/-/\n/g
s/#\n//
bb
:e
s/~//g
ba
:q
s/ \$//
s/ /\n/g
s/^\(.*\),\(\w*\),\(\w*\)\$/\2 \3 \1/gm
x
s/^.*\$/& &/gm
x
s/^/#/
s/\$/\n/
x
:Y
x
/#\$/bX
x
s/\$/\n=e/
G
s/=e.*#\(\w* \w*\) .*/\1/
s/\(.*\)\n\(.*\)/\2\n\1\n/
:A
s/^\(\w\+\) \(.*\n\1 \(\w\+\)\b\)\([^#]\)/\3 \2#\4/
tA
:B
s/^\(\w\+\) \(\w\+\)\b\(.*\n\2 \(\w\+\)\b\)\([^#]\)/\1 \4\3#\5/
tB
/^\(\w*\) \1\b/{s//\1 F/;bD}
/^\w\+ \(\w\+\)\b.*\n\1 \1#/{s/^\(\w*\) \w*\b/\1 T/;bD}
s/^\(\w*\) \w*\b/\1 F/
:D
:E
s/^\(\w*\)\( .* \)\w*#/\1\2\1/
tE
s/\n\$//
x
s/\$/\n=e/
G
s/#\([^\n]*\n\)\(.*\)\n=e\n\w* \(.\).*/\3 \1#\2/
x
s/.*\n//m
bY
:X
s///
s/\n\$//```

Note that non-ascii characters in the above source code will be escaped (such as \x9f).