6.006 Introduction to Algorithms