#include <bits/stdc++.h>
using namespace std;
long long mod = 1e9 + 7;
long long pw(long long b, long long p) {
  if (!p) return 1;
  if (p == 1) return b;
  if (p % 2) return (b * pw((b * b) % mod, (p - 1) / 2) % mod) % mod;
  return pw((b * b) % mod, p / 2) % mod;
}
int main() {
  string x;
  while (cin >> x) {
    long long res = x.back() - '0';
    for (int i = (int)x.size() - 2; i >= 0; i--) {
      res *= 2;
      res %= mod;
      if (x[i] == '1') res += pw(2, 2 * ((long long)x.size() - i - 1));
      res %= mod;
    }
    cout << res << endl;
  }
  return 0;
}
