Introduction to algorithms - Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L. (MIT Pr., 1990)