Solutions by Alex Daniel.