Introduction to algorithms - Leiserson, Charles Eric; Cormen, Thomas H. (MIT Press, 2009)