using System;
using System.Diagnostics;
using System.IO;
using System.Text;
using System.Linq;
using System.Collections.Generic;

class Program
{
    static void Main(string[] args) {
#if DEBUG
        MyDebugger.Test(process, "../TextFile1.txt");
        //MyDebugger.Test(process, "../TextFile2.txt");
        //MyDebugger.MakeTestCase("../TextFile2.txt");
#else
        object ret = process(new StreamReader(Console.OpenStandardInput()));
        Console.WriteLine(ret);
#endif
    }

    static object process(TextReader input) {
        var n = long.Parse(input.ReadLine());

        if (n <= 99) return 0;

        var ns = n.ToString();
        var keta = ns.Count();

        var tbl = new List<int>[keta+1][];
        for (int i = 0; i < tbl.Length; i++) {
            tbl[i] = new List<int>[7];
            tbl[i][0] = new List<int>(); //753
            tbl[i][1] = new List<int>(); //75
            tbl[i][2] = new List<int>(); //73
            tbl[i][3] = new List<int>(); //53
            tbl[i][4] = new List<int>(); //7
            tbl[i][5] = new List<int>(); //5
            tbl[i][6] = new List<int>(); //3
        }

        tbl[1][0] = new List<int>() { };
        tbl[1][1] = new List<int>() { };
        tbl[1][2] = new List<int>() { };
        tbl[1][3] = new List<int>() { };
        tbl[1][4] = new List<int>() { 7 };
        tbl[1][5] = new List<int>() { 5 };
        tbl[1][6] = new List<int>() { 3 };

        Action<List<int>, int> addIf = (l, x) => {
            if (x <= n) l.Add(x);
        };

        for(int i=2; i<=keta; i++) {
            var po = (int)Math.Pow(10, i-1);

            foreach (var pre in tbl[i - 1][0]) {
                addIf(tbl[i][0], pre + 3 * po);
                addIf(tbl[i][0], pre + 5 * po);
                addIf(tbl[i][0], pre + 7 * po);
            }
            foreach (var pre in tbl[i - 1][1]) {
                addIf(tbl[i][0], pre + 3 * po);
                addIf(tbl[i][1], pre + 5 * po);
                addIf(tbl[i][1], pre + 7 * po);
            }
            foreach (var pre in tbl[i - 1][2]) {
                addIf(tbl[i][2], pre + 3 * po);
                addIf(tbl[i][0], pre + 5 * po);
                addIf(tbl[i][2], pre + 7 * po);
            }
            foreach (var pre in tbl[i - 1][3]) {
                addIf(tbl[i][3], pre + 3 * po);
                addIf(tbl[i][3], pre + 5 * po);
                addIf(tbl[i][0], pre + 7 * po);
            }
            foreach (var pre in tbl[i - 1][4]) {
                addIf(tbl[i][2], pre + 3 * po);
                addIf(tbl[i][1], pre + 5 * po);
                addIf(tbl[i][4], pre + 7 * po);
            }
            foreach (var pre in tbl[i - 1][5]) {
                addIf(tbl[i][3], pre + 3 * po);
                addIf(tbl[i][5], pre + 5 * po);
                addIf(tbl[i][1], pre + 7 * po);
            }
            foreach (var pre in tbl[i - 1][6]) {
                addIf(tbl[i][6], pre + 3 * po);
                addIf(tbl[i][3], pre + 5 * po);
                addIf(tbl[i][2], pre + 7 * po);
            }
        }

        var c = 0L;
        foreach(var rec in tbl) {
            c += rec[0].Count;
        }

        return c;
    }
}

Measured memory_bytes: 13692