The art of computer programming, Volume 4A : Combinatorial algorithms part 1 - Knuth, Donald Ervin, 1938- (Addison-Wesley, 2011)