Department of Computer Science, Princeton University, Princeton, NJ, USA.|Department of Computer Science, University of Maryland, College Park, MD, USA.|Department of Computer Science, Princeton University, Princeton, NJ, USA.