Complete solution.