: mark ( map str -- ) " " split [ first 1 tail string>number ] [ third ",:" split 2 head [ string>number ] map ] [ fourth "x" split [ string>number ] map ] tri [ dupd + [a,b) ] 2map first2 [ [ 2array rot push-at ] with with with each ] curry with with each ; H{ } clone [ "/tmp/input" ascii file-lines [ mark ] with each ] keep values [ [ length 2 >= ] count . ] [ HS{ } clone [ swap [ dup length 2 >= [ union! ] [ drop ] if drop ] with each ] keep 1 1399 [a,b] swap diff . ] bi