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