#include <bits/stdc++.h>
using namespace std;
struct __TS {
  ~__TS() {
    cerr << "Time elapsed: " << clock() * 1.0 / CLOCKS_PER_SEC << endl;
  }
} __ts;
const int mod = 1e9 + 7;
const int maxn = 1239;
long long tp[maxn];
int main() {
  tp[0] = 1;
  for (int i = (int)(1); i < (int)(maxn); i++) {
    tp[i] = (2 * tp[i - 1]) % mod;
  }
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  string x;
  cin >> x;
  int n = x.size();
  long long ans = 0;
  for (int i = 0; i < (int)(n); i++) {
    if (x[i] == '0') continue;
    ans += tp[2 * (n - 1 - i) + i];
    ans %= mod;
  }
  cout << ans << endl;
  return 0;
}
