(I got this from Prof. Brian Kernighan in the next office)