using System;
using System.Collections.Generic;
using System.Linq;
class P{
    static void Main(){
        long n = long.Parse(Console.ReadLine());
        List<long> p = new List<long>();
        p.Add(7);
        p.Add(5);
        p.Add(3);
        int ist = 0;
        int ien = 2;
        for (int i = 0;i < 7;i++){
            for (int j = ist;j <= ien;j++){
                p.Add(p[j] * 10 + 7);
                p.Add(p[j] * 10 + 5);
                p.Add(p[j] * 10 + 3);
            }
            int r = ien - ist + 1;
            ist = ien + 1;
            ien += r * 3 + 1;
        }
        int ans = 0;
        p.Sort();
        foreach (var i in p){
            if (i > n) break;
            //Console.WriteLine(i);
            ans += Judge(i) ? 1 : 0;
        }
        Console.WriteLine(ans);
    }
    static bool Judge(long n){ //nが七五三数か判定
        int c7 = 0;
        int c5 = 0;
        int c3 = 0;
        while (n > 0){
            long m = n % 10;
            if (m == 7)
                c7++;
            else if (m == 5)
                c5++;
            else if (m == 3)
                c3++;
            else
                return false;
            n /= 10;
        }
        if (c7 == 0 || c5 == 0 || c3 == 0)
            return false;
        return true;
    }
}