#include <bits/stdc++.h>
using namespace std;
long long num[1000000], tmp[15];
long long pow(int x, int y) {
  long long res = 1;
  for (int i = 0; i < y; i++) {
    res *= x;
  }
  return res;
}
int main() {
  int cnt = 0, n;
  long long res = 0;
  while (res < 22222222222) {
    tmp[0]++;
    for (int i = 0; i < 11; i++) {
      if (tmp[i] > 2) {
        tmp[i] = 1;
        tmp[i + 1]++;
      }
    }
    res = 0;
    for (int i = 0; i < 11; i++) {
      res += tmp[i] * pow(10, i);
    }
    num[cnt++] = res;
  }
  sort(num, num + cnt);
  while (scanf("%d", &n) != EOF) {
    bool flag = false;
    int cn = 0, pos = 0, va;
    while (n) {
      va = n % 10;
      if (va == 7) {
        cn += 2 * pow(10, pos++);
      } else if (va == 4) {
        cn += pow(10, pos++);
      }
      n /= 10;
    }
    for (int i = 0; i < cnt; i++) {
      if (num[i] == cn) {
        printf("%d\n", i + 1);
        break;
      }
    }
  }
  return 0;
}
