#abc129e. [abc129_e]Sum Equals Xor

[abc129_e]Sum Equals Xor

Problem Statement

You are given a positive integer LL in base two. How many pairs of non-negative integers (a,b)(a, b) satisfy the following conditions?

  • a+bleqLa + b \\leq L
  • a+b=atextXORba + b = a \\text{ XOR } b

Since there can be extremely many such pairs, print the count modulo 109+710^9 + 7.

What is XOR?

The XOR of integers AA and BB, AtextXORBA \\text{ XOR } B, is defined as follows:

  • When AtextXORBA \\text{ XOR } B is written in base two, the digit in the 2k2^k's place (kgeq0k \\geq 0) is 11 if either AA or BB, but not both, has 11 in the 2k2^k's place, and 00 otherwise.

For example, 3textXOR5=63 \\text{ XOR } 5 = 6. (In base two: 011textXOR101=110011 \\text{ XOR } 101 = 110.)

Constraints

  • LL is given in base two, without leading zeros.
  • 1leqL<21000011 \\leq L < 2^{100\\ 001}

Input

Input is given from Standard Input in the following format:

LL

Output

Print the number of pairs (a,b)(a, b) that satisfy the conditions, modulo 109+710^9 + 7.


Sample Input 1

10

Sample Output 1

5

Five pairs (a,b)(a, b) satisfy the conditions: (0,0),(0,1),(1,0),(0,2)(0, 0), (0, 1), (1, 0), (0, 2) and (2,0)(2, 0).


Sample Input 2

1111111111111111111

Sample Output 2

162261460