#include <bits/stdc++.h>
using namespace std;
long long f[150];
long long power(int a, int x) {
  if (x == 1) return a;
  long long k = power(a, x / 2) % 1000000007;
  k = (k * k) % 1000000007;
  if (x % 2) k = (k * a) % 1000000007;
  return k;
}
int main() {
  string s;
  cin >> s;
  f[s.size() - 1] = s[s.size() - 1] - '0';
  for (int i = s.size() - 2; i >= 0; i--) {
    f[i] = (2 * f[i + 1]) % 1000000007;
    if (s[i] == '1')
      f[i] = (f[i] + power(2, 2 * (s.size() - 1 - i))) % 1000000007;
  }
  cout << f[0] << endl;
  return 0;
}
