https://www.geeksforgeeks.org/fleurys-algorithm-for-printing-eulerian-path/