#P914C. Travelling Salesman and Special Numbers

Travelling Salesman and Special Numbers

描述

旅行推销员经常花很多时间在旅行中,所以他往往会感到无聊。为了消磨时间,他喜欢对数字执行操作。其中一种操作是取一个正整数 xx 并将其减少到其二进制表示中设置为 11 的位数。例如,对于数字 1313,可以得知 1310=1101213_{10} = 1101_{2},所以它有 33 个位被设置为 111313 将在一次操作中被减少到 33

他称一个数字为特殊数,如果将其减少到 11 的最小操作数为 kk

他想要知道不大于 nn特殊数有多少个。请帮助旅行推销员,因为他即将到达目的地!

由于答案可能很大,输出结果模 109+710^9 + 7

输入

第一行包含整数 nn (1n<210001 \leq n < 2^{1000})。

第二行包含整数 kk (0k10000 \leq k \leq 1000)。

请注意,nn 是在其二进制表示中给出的,没有任何前导零。

输出

输出一个整数 — 不大于 nn特殊数的数量,模 109+710^9 + 7

样例

110
2
111111011
2
3
169

注意

在第一个样例中,三个特殊数分别是 335566。它们通过一次操作被减少到 22(因为 335566 中的每个数字都有两个设置位),然后再经过一次操作被减少到 11(因为 22 中只有一个设置位)。