Daşlar
Vasinin bir neçə düz daşları var. Hər daşın bir tərəfi ağ, digər tərəfi isə qaradır. O, daşları qara tərəfi aşağıya baxacaq şəkildə sıraya düzdü. Vasya ağıllıdır və qarşısındakı mənzərənin əslində ikilik ədəd olduğunu başa düşdü. Mənzərə ikilik ədədə aşağıdakı şəkildə çevrilir: Ağ tərəfi yuxarıda olan daş sıfır, qara tərəfi yuxarıda olan isə bir hesab olunur. Birinci daş 1, ikinci 2, üçüncü 4 və s. əmsalla götürülür.
İndi o, n ədədini düşünüb və onu əldə etmək istəyir. Lakin, edə biləcəyi yeganə şey, sıfırdan fərqli uzunluqda olan bir daş parçasını çevirməkdir. Çevirmə zamanı həmin parça üzərindəki bütün daşlar qara tərəfdən ağ tərəfə, ağ tərəfdən isə qara tərəfə çevrilir. Lakin, o, bütün parçaları çevirə bilmir. O başa düşdü ki, çevrilən parça da əslində ikilik ədəddir. O, yalnız ikilik ədəd olaraq k-dan böyük olmayan daş parçalarını çevirə bilər.
Həmçinin, Vasya təkrarlanmaq istəmir və çevrilən bütün parçalar fərqli olmalıdır. Onu maraqlandıran, məqsədinə çatmağın, yəni n ədədinə uyğun gələn mənzərəni əldə etməyin neçə üsulu olduğudur. Bu say böyük ola biləcəyi üçün, onu 10^9 + 7 ilə bölünmənin qalığı olaraq çıxarın.
Giriş verilənləri
Giriş faylının birinci sətrində boşluqla ayrılmış n (1 ≤ n ≤ 10^18) və k (1 ≤ k ≤ 10^18) ədədləri verilir.
Çıxış verilənləri
Lazım olan üsulların sayını 10^9 + 7 modulu ilə çıxarın.