Камни
У Васи есть несколько плоских камней. Каждый камень белый с одной стороны и чёрный с другой. Он разложил их в ряд чёрной стороной вниз. Вася догадливый и заметил, что картинка перед ним - на самом деле двоичное число. Картина переводится в двоичное число следующим образом. Камень, лежащий белой стороной вверх считается нулём, чёрной - единицей. Первый камень берётся с коэффициентом 1, второй - 2, третий - 4, и т.д.
Теперь он задумал число n и хочет получить его. Однако, единственное, что он может делать - это перевернуть какой-то отрезок камней ненулевой длины. При перевороте отрезка все камни на нём переворачиваются с чёрной стороны на белую, с белой - на чёрную. Однако, даже отрезки он может переворачивать не все. Он заметил, что переворачиваемый отрезок на самом деле тоже двоичное число. Он может переворачивать только те отрезки камней, соответствующее которым число не превышает k.
Также, Вася не хочет повторяться, и все переворачиваемые им отрезки должны быть различны. Его заинтересовало количество способов добиться своей цели, а именно, получить картину, соответствующую числу n. Так как такое количество может быть большим, выведите его остаток от деления на 10^9 + 7.
Входные данные
В первой строке входного файла через пробел заданы числа n (1 ≤ n ≤ 10^18) и k (1 ≤ k ≤ 10^18).
Выходные данные
Выведите требуемое количество способов по модулю 10^9 + 7.