What am I doing in the alien league? I'm submitting this shameful solution only because I don't want to let another TPR course fly by.
#!perl -ln
@p{($a,$b)=split}||={};next if$a eq$b;$p{$b}{$a}=1}{L:while(@k=keys%p){for(@k){next if keys%{$p{$_}};for$k(@k){delete$p{$k}{$_};}delete$p{$_};print;next L}exit 1;}
|