#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string>
using namespace std;
int multiple(int k) {
    int er = 1;
    for (int i = 0; i <k; i++) {
        er = er * 2;
    }
    return er;
}
int main() {
    char arr[100];
    string str;
    int total = 0;
    while (scanf("%s", &arr) != EOF) {
        str = arr;
        for (int i = 0; i < str.size(); ++i) {
            int multi = multiple(str.size() - i);
            if (str[i] == '2') {
                total += 2 * (multi - 1);
                break;
            }
            else if (str[i] == '1') {
                total += multi - 1;
            }
        }
        printf("%d\n", total);
        total=0;
    }
    return 0;
}