Introduction to algorithms - Cormen, Thomas H. (Prentice Hall, 2003)