#include <bits/stdc++.h>
using namespace std;
const double PI = acos(-1.0);
const double EPS = 1e-11;
const long long MOD = 1000000007;
const int N = 100000 + 7;
void fast() { std::ios_base::sync_with_stdio(0); }
long long Pow(long long b, long long p) {
  if (!p) return 1;
  long long res = Pow(b, (p >> 1));
  res = res * res % MOD;
  if (p & 1) res *= b;
  return res;
}
int main() {
  string s;
  cin >> s;
  reverse(s.begin(), s.end());
  long long ans = 0;
  for (long long i = 0; i < s.size(); i++) {
    ans = (ans << 1) % MOD;
    if (s[i] == '1') ans = (ans + Pow(2, (i << 1LL))) % MOD;
  }
  printf("%lld\n", ans);
  return 0;
}
