# Angry Xiao N https://www.luogu.com.cn/problem/P7468 There is a game with infinite levels, starting from level 0. Some are normal levels while some are special levels. Completing normal levels doesn't give you points while completing special level $x$ gives you $a_0 + a_1x + a_2x^2 + a_3x^3 ... a_{k-1}x^{k-1}$ points. The values of $a_0$ to $a_{k-1}$ are given The sequence of levels is given as follows: 1. Let string $s$ be 'a' 1. Let $t$ be $s$, but where all 'a' are replaced by 'b' and all 'b' replaced by 'a' 1. Append $t$ to $s$ 1. Repeat step $2$ and $3$ infinitely many times 1. The $i$-th level is normal if $s[i]$ is ‘a’ and special if $s[i]$ is ‘b’ Based on the above rules, the first few characters of $s$ are abbabaabbaababba... You have to find the total number of points you can get by completing the first $n$ levels, mod $1000000007$. ## Constraints $n$ is given in binary. $n$ has at most $500000$ binary digits $k \leq 500$ $0 \leq a_i \leq 10^9$ ## Input The first line contains a single integer, $n$. $n$ is given in binary. The next line is $k$ The next line contains $k$ integers, which is $a_0$ to $a_{k-1}$ Output Output the total number of points you can get by completing the first $n$ levels, mod $1000000007$. ## Sample Input 1 ``` 1000 3 3 2 1 ``` Output 1 `110` Input 2 ``` 11111100101 4 2 0 2 1 ``` Output 2 `143901603` Input 3 ``` 1001011001101001 16 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 ``` Output 3 `184740992` For sample 1: $n = 8$ $1,2,4,7$ are special levels while $0,3,5,6$, are normal levels. $(3 + 2\times1 + 1\times1\times1) + (3 + 2\times2 + 1\times2\times2) + (3 + 2\times4 + 1\times4\times4) + (3 + 2\times7 + 1\times7\times7) = 110$