Introduction to algorithms - Cormen, Thomas H. (MIT Press, 2001)