Problem:
Score : 300 points

Problem Statement

You are given an integer N. Among the integers between 1 and N (inclusive), how many Shichi-Go-San numbers (literally "Seven-Five-Three numbers") are there?

Here, a Shichi-Go-San number is a positive integer that satisfies the following condition:

When the number is written in base ten, each of the digits 7, 5 and 3 appears at least once, and the other digits never appear.

Constraints

1 \leq N < 10^9

N is an integer.

Input

Input is given from Standard Input in the following format:

N

Output

Print the number of the Shichi-Go-San numbers between 1 and N (inclusive).

Sample Input 1

575

Sample Output 1

4

There are four Shichi-Go-San numbers not greater than 575: 357, 375, 537 and 573.

Sample Input 2

3600

Sample Output 2

13

There are 13 Shichi-Go-San numbers not greater than 3600: the above four numbers, 735, 753, 3357, 3375, 3537, 3557, 3573, 3575 and 3577.

Sample Input 3

999999999

Sample Output 3

26484

Solution in Python (3.4.3) (judge verdict: Accepted)

from bisect import bisect_right

def sft(n, s):
    d = len(s[0])
    if s and d == n:
        return sorted([int(i) for i in s])
    a = []
    for i, si in enumerate(s):
        for k in range(3):
            ai = si + "357"[k]
            da = len(set(list(ai)))
            if d == n - 2 and da < 2:
                continue
            if d == n - 1 and da < 3:
                continue
            a.append(ai)
    return sft(n, a)

def main():
    n = input()
    d = len(n)
    s = []
    l = list("357")
    for i in range(3, d + 1):
        s += sft(i, l)
    print(bisect_right(s, int(n)))

if __name__ == '__main__':
    main()