Неплохая задача.Для ее решения пришлось прилично п...