#include <bits/stdc++.h>
using namespace std;
long long pow2[1100];
int mod = 1e9 + 7;
void get_mod() {
  pow2[0] = 1;
  for (int i = 1; i < 1050; i++) pow2[i] = (2 * pow2[i - 1]) % mod;
}
int main() {
  get_mod();
  long long ans = 0;
  string inp;
  cin >> inp;
  reverse(inp.begin(), inp.end());
  int n = inp.size();
  for (int i = 0; i < n; i++) {
    ans = (2 * ans) % mod;
    if (inp[i] == '1') ans = (ans + pow2[2 * i]) % mod;
  }
  cout << ans;
  return 0;
}
