I disapprove of supplying full working code answers as this most likely results in straight copy pasting with little to no learning effect.