Two very nice and clean solutions