Beware of bugs in the above code; I have only proved it correct, not tried it.
~ Donald Ervin Knuth (born: 1938-01-10 age: 71)