#include <bits/stdc++.h>
int main() {
  std::ios::sync_with_stdio(false);
  std::cin.tie(NULL);
  std::string s;
  std::cin >> s;
  std::reverse(s.begin(), s.end());
  std::size_t p = 1, res = 0;
  const std::size_t m = 1000000007;
  for (std::size_t i = 1; i < s.size(); i++) {
    p <<= 1;
    if (p >= m) p -= m;
  }
  for (std::size_t i = 0; i < s.size(); i++) {
    if (s[i] == '1') {
      res += p;
      if (res >= m) res -= m;
    }
    p <<= 1;
    if (p >= m) p -= m;
  }
  std::cout << res << '\n';
  return 0;
}
