#include <bits/stdc++.h>
using namespace std;
inline int nxt() {
  int a;
  scanf("%d", &a);
  return a;
}
long long gcd(long long a, long long b) {
  while (b > 0) {
    a %= b;
    swap(a, b);
  }
  return a;
}
inline void solve() {
  vector<long long> res;
  for (int len = 1; len < 10; ++len) {
    int M = 1 << len;
    for (int i = 0; i < M; ++i) {
      long long a = 0;
      for (int j = 0; j < len; ++j) {
        a *= 10;
        if (i & (1 << j)) {
          a += 4;
        } else {
          a += 7;
        }
      }
      res.push_back(a);
    }
  }
  sort(res.begin(), res.end());
  int n = nxt();
  int pos = lower_bound(res.begin(), res.end(), n) - res.begin() + 1;
  cout << pos << "\n";
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  solve();
  return 0;
}
