Full Solution