Нескінченне дерево
Під час польоту до планетарної системи Link-Cut вам стало нудно, і Люсі почала розповідати вам про ядерну фізику. Конкретно, про те, як працюють ланцюгові реакції в реакторі вашого корабля.
Оскільки корабель незвичайний, то й реактор теж незвичайний; він генерує унікальні атоми, кожен з унікальною характеристикою, тобто з додатнім цілим числом. При генерації нового атома вибирається найменше доступне значення характеристики (ви також можете думати про це як про число, на одиницю більше, ніж кількість атомів, які існували раніше). Спочатку реактор виробляє атом (з номером 1), після чого починається фаза розщеплення.
Атоми, в порядку їх характеристик, починають створювати додаткові атоми. Атом з характеристикою створить додаткових атомів. Тут означає кількість встановлених бітів у двійковому представленні , формально це можна визначити наступним чином:
де - найбільше невід'ємне ціле таке, що ділиться на .
Ці операції формують дерево ланцюгової реакції. Однак така конструкція не дуже стійка, тому розриви відбуваються часто. Кожен розрив можна визначити двома атомами (конкретно, їх характеристиками), і під час кожного розриву всі з'єднання на шляху між цими двома атомами руйнуються. Задача реактора - відновити їх, що є досить складним процесом, тому ми зосередимося на одній з його найпростіших частин, тобто на обчисленні потрібної енергії, яка дорівнює кількості руйнувань з'єднань.
Частина цього дерева
У цей момент ваш корабель був атакований астероїдом, і Люсі поспішила виправити збиток, давши вам домашнє завдання написати програму для обчислення енергії. Оскільки ви все ще вчитеся, вона спростила завдання, стверджуючи, що розриви будуть відбуватися тільки між атомами, чиї характеристики менше .
Наближається дедлайн , тому не зволікайте і виконуйте своє завдання.
Вхідні дані
Перший рядок містить два цілі числа і - найбільше значення характеристики в кожному розриві та кількість розривів.
Кожен з наступних рядків містить два цілі числа і - значення характеристики двох атомів, між якими відбувається розрив. Зверніть увагу, що кожний запит незалежний від інших.
Вихідні дані
Для кожного розриву виведіть кількість руйнуваних з'єднань.
Приклади
Оцінювання
( бали): ;
( бали): ;
( балів): ;
( балів): Без додаткових обмежень;