Подробный диалог и задача описана по ссылке