def func(var):

    res = 1 if all(c in str(var) for c in '357') else 0

    if var > N:

        return 0

    else:

        for v in 3, 5, 7:

            res += func(var * 10 + v)

    return res





N = int(eval(input()))

res = 0

for v in 3, 5, 7:

    res += func(v)

print(res)

def rec(s):

    """引数末尾に753を付け加えてできる753数

    753以外の数が現れないように文字を加えているので、

    ・すべて一回以上出たら753数に加算

    ・Nを超えたらreturn 0

    させればよい"""

    # base case

    if int(s) > n:

        return 0



    res = 0

    if all(c in s for c in '753'):

        res += 1



    # 再帰ステップ

    for c in '753':

        res += rec(s + c)

    return res





n = int(eval(input()))

print((rec('0')))

def func(var):
    res = 1 if all(c in str(var) for c in "357") else 0
    if var > N:
        return 0
    else:
        for v in 3, 5, 7:
            res += func(var * 10 + v)
    return res


N = int(eval(input()))
res = 0
for v in 3, 5, 7:
    res += func(v)
print(res)

def rec(s):
    """引数末尾に753を付け加えてできる753数
    753以外の数が現れないように文字を加えているので、
    ・すべて一回以上出たら753数に加算
    ・Nを超えたらreturn 0
    させればよい"""
    # base case
    if int(s) > n:
        return 0
    res = 0
    if all(c in s for c in "753"):
        res += 1
    # 再帰ステップ
    for c in "753":
        res += rec(s + c)
    return res


n = int(eval(input()))
print((rec("0")))

-def func(var): -    res = 1 if all(c in str(var) for c in "357") else 0 -    if var > N: +def rec(s): +    """引数末尾に753を付け加えてできる753数 +    753以外の数が現れないように文字を加えているので、 +    ・すべて一回以上出たら753数に加算 +    ・Nを超えたらreturn 0 +    させればよい""" +    # base case +    if int(s) > n: -    else: -        for v in 3, 5, 7: -            res += func(var * 10 + v) +    res = 0 +    if all(c in s for c in "753"): +        res += 1 +    # 再帰ステップ +    for c in "753": +        res += rec(s + c) -N = int(eval(input())) -res = 0 -for v in 3, 5, 7: -    res += func(v) -print(res) +n = int(eval(input())) +print((rec("0")))