The art of computer programming : combinatorial algorithms. Volume 4A. Part 1. - Knuth, Donald E. (Addison-Wesley, 1997)