This puzzle looks really interesting but I haven't attempted it yet. I think I will have trouble setting up the starting data structure.