Source: http://www.cs.bilkent.edu.tr/~canf/CS101Spring02/manual.pdf