#include <bits/stdc++.h>
using namespace std;
int SI(string str) {
  int ans;
  stringstream s;
  s << str;
  s >> ans;
  return ans;
}
string IS(int n) {
  string str;
  stringstream s;
  s << n;
  s >> str;
  return str;
}
int main() {
  string s;
  cin >> s;
  int l = s.length();
  long long val = 0;
  int c = 1;
  for (int i = l - 1; i >= 0; i--) {
    val += (s[i] - '0') * c;
    c *= 2;
    c %= 1000000007;
    val %= 1000000007;
  }
  long long ans = 1;
  for (int i = 1; i < l; i++) ans = (ans * 2) % 1000000007;
  cout << (val % 1000000007 * ans % 1000000007) % 1000000007;
  int aa;
  cin >> aa;
  return 0;
}
