No tag edit access

A. Malek Dance Club

time limit per test

1 secondmemory limit per test

256 megabytesinput

standard inputoutput

standard outputAs a tradition, every year before IOI all the members of Natalia Fan Club are invited to Malek Dance Club to have a fun night together. Malek Dance Club has 2^{n} members and coincidentally Natalia Fan Club also has 2^{n} members. Each member of MDC is assigned a unique id *i* from 0 to 2^{n} - 1. The same holds for each member of NFC.

One of the parts of this tradition is one by one dance, where each member of MDC dances with a member of NFC. A dance pair is a pair of numbers (*a*, *b*) such that member *a* from MDC dances with member *b* from NFC.

The complexity of a pairs' assignment is the number of pairs of dancing pairs (*a*, *b*) and (*c*, *d*) such that *a* < *c* and *b* > *d*.

You are given a binary number of length *n* named *x*. We know that member *i* from MDC dances with member from NFC. Your task is to calculate the complexity of this assignment modulo 1000000007 (10^{9} + 7).

Expression denotes applying «XOR» to numbers *x* and *y*. This operation exists in all modern programming languages, for example, in C++ and Java it denotes as «^», in Pascal — «xor».

Input

The first line of input contains a binary number *x* of lenght *n*, (1 ≤ *n* ≤ 100).

This number may contain leading zeros.

Output

Print the complexity of the given dance assignent modulo 1000000007 (10^{9} + 7).

Examples

Input

11

Output

6

Input

01

Output

2

Input

1

Output

1

Codeforces (c) Copyright 2010-2018 Mike Mirzayanov

The only programming contests Web 2.0 platform

Server time: Jan/21/2018 22:58:25 (d2).

Desktop version, switch to mobile version.

User lists

Name |
---|