void main()
{
    long n = readln.chomp.to!long;

    string digits = "0357";
    long cnt;
    foreach (i; 0 .. 1000000)
    {
        long x = i;
        long len;
        string nums;
        while (x)
        {
            ++len;
            nums ~= digits[x%4];
            x /= 4;
        }

        long num;
        foreach_reverse (j, c; nums)
        {
            num += (c - '0') * 10 ^^ j;
        }
        if (num > n) break;

        if (!nums.canFind('0')
            && nums.canFind('3')
            && nums.canFind('5')
            && nums.canFind('7'))
            ++cnt;
    }

    cnt.writeln;
}

import std.stdio;
import std.string;
import std.array;
import std.conv;
import std.algorithm;
import std.range;
import std.math;
import std.numeric;
import std.container;
import std.typecons;
import std.ascii;
import std.uni;