import copy
mod = 10**9+1
def com(n,r,m):
    #a = math.factorial(n)%m
    a = 1
    for i in range(1,n+1):
        a *= i
        a %= m
    A = pow(a,m-2,m)
    
    
    b= copy.deepcopy(A)   
    for i in range(n,r,-1):
        b = (b*i)%m
    
    c = copy.deepcopy(A)
    for i in range(n,n-r,-1):
        c = (c*i)%m
       
    return (a*b*c)%m

n = input()
ans = 0
for i in range(3,len(n)):
    ans += 3**i-3*2**i+3
b = [3,5,7]
l = [0,0,0]
for i in range(len(n)):
    x = int(n[i])
    if not 0 in l:
        if (x<3):
            break
        elif (x==3):
            l[0]+=1
        elif (x==4):
            ans += 3**(len(n)-1-i)
            break
        elif (x==5):
            ans += 3**(len(n)-1-i)
            l[1]+=1
        elif (x==6):
            ans += 3**(len(n)-1-i)
            ans += 3**(len(n)-1-i)
            break
        elif (x==7):
            ans += 3**(len(n)-1-i)
            ans += 3**(len(n)-1-i)
            l[2]+=1
        else:
            ans += 3**(len(n)-1-i)
            ans += 3**(len(n)-1-i)
            ans += 3**(len(n)-1-i)
            break
        continue
    if (l[0]==0 and l[1]==0 or l[1]==0 and l[2]==0 or l[0]==0 and l[2]==0):
        if (x<3):
            break
        elif (x==3):
            l[0]+=1
        elif (x==4):
            ans += 3**(len(n)-1-i)-1
            break
        elif (x==5):
            ans += 3**(len(n)-1-i)-1
            l[1]+=1
        elif (x==6):
            ans += 3**(len(n)-1-i)-2**(len(n)-1-i)
            ans += 3**(len(n)-1-i)-2**(len(n)-1-i)
            break
        elif (x==7):
            ans += 3**(len(n)-1-i)-2**(len(n)-1-i)
            ans += 3**(len(n)-1-i)-2**(len(n)-1-i)
            l[2]+=1
        else:
            ans += 3**(len(n)-1-i)-2**(len(n)-1-i)
            ans += 3**(len(n)-1-i)-2**(len(n)-1-i)
            ans += 3**(len(n)-1-i)-2**(len(n)-1-i)
            break
        continue
    if (l[0]==0 or l[1]==0 or l[2]==0):
        if (x<3):
            break
        elif (x==3):
            l[0]+=1
        elif (x==4):
            ans += 3**(len(n)-1-i)-2*2**(len(n)-1-i)+1
            break
        elif (x==5):
            ans += 3**(len(n)-1-i)-3*2**(len(n)-1-i)+3
            l[1]+=1
        elif (x==6):
            ans += 3**(len(n)-1-i)-3*2**(len(n)-1-i)+3
            ans += 3**(len(n)-1-i)-3*2**(len(n)-1-i)+3
            break
        elif (x==7):
            ans += 3**(len(n)-1-i)-3*2**(len(n)-1-i)+3
            ans += 3**(len(n)-1-i)-3*2**(len(n)-1-i)+3
            l[2]+=1
        else:
            ans += 3**(len(n)-1-i)-3*2**(len(n)-1-i)+3
            ans += 3**(len(n)-1-i)-3*2**(len(n)-1-i)+3
            ans += 3**(len(n)-1-i)-3*2**(len(n)-1-i)+3
            break
        continue

    if (x<3):
        break
    elif (x==3):
        l[0]+=1
    elif (x==4):
        ans += 3**(len(n)-1-i)-3*2**(len(n)-1-i)+3
        break
    elif (x==5):
        ans += 3**(len(n)-1-i)-3*2**(len(n)-1-i)+3
        l[1]+=1
    elif (x==6):
        ans += 3**(len(n)-1-i)-3*2**(len(n)-1-i)+3
        ans += 3**(len(n)-1-i)-3*2**(len(n)-1-i)+3
        break
    elif (x==7):
        ans += 3**(len(n)-1-i)-3*2**(len(n)-1-i)+3
        ans += 3**(len(n)-1-i)-3*2**(len(n)-1-i)+3
        l[2]+=1
    else:
        ans += 3**(len(n)-1-i)-3*2**(len(n)-1-i)+3
        ans += 3**(len(n)-1-i)-3*2**(len(n)-1-i)+3
        ans += 3**(len(n)-1-i)-3*2**(len(n)-1-i)+3
        break
print(ans)
