Runner-up: smallest polynomial-time solution — TEAM-19

; Lawrence Fetter, James Hodgskiss, David Kennedy - 19 rules
0 _ _ L Y ; Found Y
0 * * R 0 ; Move to the end of input
Y 0 _ L Y0 ; Current Y is 0
Y 1 _ L Y1 ; Current Y is 1
Y # _ L XY ; |X|>|Y|
Y0 # # L Y0X ; Found X (current Y is 0)
Y1 # # L Y1X ; Found X (current Y is 1)
Y0X _ x R 0 ; |Y|>|X|
Y0X 0 x R 0 ; Substitution: (0+0)->x
Y0X 1 y R 0 ; Substitution: (0+1)->y
Y1X _ y R 0 ; |Y|>|X|
Y1X 0 y R 0 ; Substitution: (1+0)->y
Y1X 1 x L LC ; Substitution: (1+1)->x, perform long carry
LC 1 0 L LC ; Long Carry subroutine
LC * 1 R 0 ; End of long carry
XY x 0 L XY ; Substitution: x->0
XY y 1 L XY ; Substitution: y->1
XY * * * halt ; No more x's or y's to replace
* * * L * ; Move left