#include <bits/stdc++.h>
using namespace std;
vector<int> v;
const int M = 1e8;
void dfs(int k) {
  if (k > M) {
    return;
  }
  v.push_back(k * 10 + 4);
  v.push_back(k * 10 + 7);
  dfs(k * 10 + 4);
  dfs(k * 10 + 7);
}
int main() {
  int n;
  cin >> n;
  dfs(0);
  sort(v.begin(), v.end());
  cout << upper_bound(v.begin(), v.end(), n) - v.begin();
}
