Вроде бы полностью рабочая версия, работающая на Adjacency list.
(literal count еще не прикручен)