ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила

2209. Дерево Штерна-Броко

Ограничение времени: 0.5 секунды
Ограничение памяти: 256 МБ
Дерево Штерна-Броко — это изящная конструкция, позволяющая построить множество всех неотрицательных дробей. Строится она с помощью бесконечного последовательного выполнения одной итерации. Пусть на нулевой итерации у нас будет массив из двух дробей:
[0/1, 1/0]
(вторая величина, строго говоря, дробью не является; её можно понимать как несократимую дробь, обозначающую бесконечность).
Дальше на каждой следующей итерации берутся две соседние дроби a/b и c/d и вставляется между ними их медианта, то есть дробь a+c/b+d. Таким образом, на следующих итерациях получатся массивы:
[0/1, 1/1, 1/0]
[0/1, 1/2, 1/1, 2/1, 1/0]
[0/1, 1/3, 1/2, 2/3, 1/1, 3/2, 2/1, 3/1, 1/0]
Можно показать, что любое число, представимое в виде неотрицательной дроби, рано или поздно появится в этом массиве. А также никакая дробь не окажется в нём дважды. Давайте тогда для каждого числа запомним итерацию, после которой оно впервые появилось. Получается, после первой итерации появилась дробь 1/1, после второй — дроби 1/2 и 2/1, и так далее.
Осталось только привести определение самого дерева Штерна-Броко. В корне этого бесконечного дерева находится дробь 1/1, а слева и справа от дерева находятся дроби 0/1 и 1/0. Любая вершина дерева имеет двух сыновей, каждый из которых получается как медианта своего левого предка и правого предка. Получается, на глубине i этого дерева будут все те дроби, которые появились на i-й итерации:
Problem illustration
У этого дерева есть множество замечательных свойств, но они нас сегодня не интересуют. Задача состоит в том, чтобы найти дробь, которая находится на глубине N и является M-й по счёту слева.

Исходные данные

В единственной строке даны два целых числа N и M — глубина и порядок слева необходимой дроби (1 ≤ N ≤ 109, 1 ≤ Mmin(2N−1, 109)).

Результат

Выведите числитель и знаменатель этой дроби через пробел.

Примеры

исходные данныерезультат
1 1
1 1
3 3
3 2
5 7
5 7
Автор задачи: Вадим Баринов
Источник задачи: Вузовско-академическая олимпиада по информатике 2023