eolymp
bolt
Try our new interface for solving problems
Məsələlər

Камни

Камни

У Васи есть несколько плоских камней. Каждый камень белый с одной стороны и чёрный с другой. Он разложил их в ряд чёрной стороной вниз. Вася догадливый и заметил, что картинка перед ним - на самом деле двоичное число. Картина переводится в двоичное число следующим образом. Камень, лежащий белой стороной вверх считается нулём, чёрной - единицей. Первый камень берётся с коэффициентом \textbf{1}, второй - \textbf{2}, третий - \textbf{4}, и т.д. Теперь он задумал число \textbf{n} и хочет получить его. Однако, единственное, что он может делать - это перевернуть какой-то отрезок камней ненулевой длины. При перевороте отрезка все камни на нём переворачиваются с чёрной стороны на белую, с белой - на чёрную. Однако, даже отрезки он может переворачивать не все. Он заметил, что переворачиваемый отрезок на самом деле тоже двоичное число. Он может переворачивать только те отрезки камней, соответствующее которым число не превышает \textbf{k}. Также, Вася не хочет повторяться, и все переворачиваемые им отрезки должны быть различны. Его заинтересовало количество способов добиться своей цели, а именно, получить картину, соответствующую числу \textbf{n}. Так как такое количество может быть большим, выведите его остаток от деления на \textbf{10^9 + 7}. \InputFile В первой строке входного файла через пробел заданы числа \textbf{n} (\textbf{1} ≤ \textbf{n} ≤ \textbf{10^18}) и \textbf{k} (\textbf{1} ≤ \textbf{k} ≤ \textbf{10^18}). \OutputFile Выведите требуемое количество способов по модулю \textbf{10^9 + 7}.
Zaman məhdudiyyəti 1 saniyə
Yaddaşı istafadə məhdudiyyəti 64 MiB
Giriş verilənləri #1
3 4
Çıxış verilənləri #1
2
Müəllif Н.Нигматуллин, А.Комаров
Mənbə Четвертая олимпиада, Базовый уровень. 12 ноября 2011 года.