Без разбора естественно.
Собственно ответы и решения гугли, а лучше если решишь сам.
При самостоятельном решении можно даже с какими-либо вопросами и уточнениями придти сюда.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший