#include <bits/stdc++.h>
using namespace std;
const int mod = 1000000007;
char s[103];
long long cal(int n) {
  long long ret = 1, p = 2;
  while (n) {
    if (n & 1) ret = ret * p % mod;
    p = p * p % mod;
    n >>= 1;
  }
  return ret;
}
int main() {
  int i, j;
  scanf("%s", s);
  int l = strlen(s);
  reverse(s, s + l);
  long long ans = 0;
  for (i = 0; i < l; i++) {
    if (s[i] == '1') {
      ans = (ans + cal(l + i - 1)) % mod;
    }
  }
  printf("%I64d\n", ans);
  return 0;
}
