Introduction to algorithms (MIT Press, 2009)