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