405411: GYM101954 F Lighting
Description
The lighting system in Binary Casino is controlled by a very complex and secure mechanism, which is connected to a central control console. At the console, the state of each light is stored as one bit of information (0 = the corresponding light is off, 1 = light is on), so the complete state of all lights in the building may be represented by a binary number $$$a$$$.
To avoid manipulation by unauthorized persons, the lighting system has a special method to control the lights. Should one want to change the configuration of the lights, it is necessary to enter a binary number $$$b$$$ which gets added to the original configuration a using standard integer summation.
You need a particular number of lights to be switched ON and you are curious what are your chances of success. How many suitable binary numbers are there?
InputThe first line of input contains two integers $$$N$$$ and $$$K$$$ ($$$1 \le N \le 1000$$$, $$$0 \le K \le N$$$), $$$N$$$ representing the number of bits of $$$a$$$ and of $$$b$$$, and $$$K$$$ the target number of lights to be switched ON. The second line contains a binary integer $$$a$$$ of length $$$N$$$.
OutputPrint the number of different nonnegative $$$N$$$-bit integers $$$b$$$ such that the sum $$$a + b$$$ has exactly $$$K$$$ bits set to 1. As the result might be large, output it modulo $$$10^9 + 7$$$.
ExamplesInput4 2Output
1100
5Input
10 5Output
1000100111
260Input
13 1Output
0000000000000
13