#include <iostream>
#include <string.h>
#include <algorithm>
#include <queue>
#include <vector>
#include <map>
#include <stack>
using namespace std;
int main(void){
long N;
cin>>N;
int num[4]; num[0]=3; num[1]=5; num[2]=7; num[3]=0;
int count=0;
bool check1=false; bool check2=false; bool check3=false;
long max=N; int rep=0;
while(max>0){
   max=max/10;
   rep++;
}
if(rep>=9){
for(int i=0;i<3;i++){
    for(int j=0;j<3;j++){
        for(int k=0;k<3;k++){
            for(int l=0;l<3;l++){
                for(int m=0;m<3;m++){
                    for(int n=0;n<3;n++){
                        for(int o=0;o<3;o++){
                            for(int p=0;p<3;p++){
                                for(int q=0;q<3;q++){
                                    if(i==0||j==0||k==0||l==0||m==0||n==0||o==0||p==0||q==0){check1=true;}
                                    if(i==1||j==1||k==1||l==1||m==1||n==1||o==1||p==1||q==1){check2=true;}
                                    if(i==2||j==2||k==2||l==2||m==2||n==2||o==2||p==2||q==2){check3=true;}
                                    long sum=num[i]+num[j]*10+num[k]*100+num[l]*1000+num[m]*10000+num[n]*100000+num[o]*1000000+num[p]*10000000+num[q]*100000000;
                                    if(sum<=N&&check1&&check2&&check3){count++; }
                                    check1=false; check2=false; check3=false;
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
}
check1=false; check2=false; check3=false;
if(rep>=8){
for(int i=0;i<3;i++){
    for(int j=0;j<3;j++){
        for(int k=0;k<3;k++){
            for(int l=0;l<3;l++){
                for(int m=0;m<3;m++){
                    for(int n=0;n<3;n++){
                        for(int o=0;o<3;o++){
                            for(int p=0;p<3;p++){
                                
                                    if(i==0||j==0||k==0||l==0||m==0||n==0||o==0||p==0){check1=true;}
                                    if(i==1||j==1||k==1||l==1||m==1||n==1||o==1||p==1){check2=true;}
                                    if(i==2||j==2||k==2||l==2||m==2||n==2||o==2||p==2){check3=true;}
                                    long sum=num[i]+num[j]*10+num[k]*100+num[l]*1000+num[m]*10000+num[n]*100000+num[o]*1000000+num[p]*10000000;
                                    if(sum<=N&&check1&&check2&&check3){count++; }
                                check1=false; check2=false; check3=false;
                            }
                        }
                    }
                }
            }
        }
    }
}
}
check1=false; check2=false; check3=false;
if(rep>=7){
for(int i=0;i<3;i++){
    for(int j=0;j<3;j++){
        for(int k=0;k<3;k++){
            for(int l=0;l<3;l++){
                for(int m=0;m<3;m++){
                    for(int n=0;n<3;n++){
                        for(int o=0;o<3;o++){
                            
                                
                                    if(i==0||j==0||k==0||l==0||m==0||n==0||o==0){check1=true;}
                                    if(i==1||j==1||k==1||l==1||m==1||n==1||o==1){check2=true;}
                                    if(i==2||j==2||k==2||l==2||m==2||n==2||o==2){check3=true;}
                                    long sum=num[i]+num[j]*10+num[k]*100+num[l]*1000+num[m]*10000+num[n]*100000+num[o]*1000000;
                                    if(sum<=N&&check1&&check2&&check3){count++; }
                                check1=false; check2=false; check3=false;
                            
                        }
                    }
                }
            }
        }
    }
}
}
check1=false; check2=false; check3=false;
if(rep>=6){
for(int i=0;i<3;i++){
    for(int j=0;j<3;j++){
        for(int k=0;k<3;k++){
            for(int l=0;l<3;l++){
                for(int m=0;m<3;m++){
                    for(int n=0;n<3;n++){
                        
                                
                                    if(i==0||j==0||k==0||l==0||m==0||n==0){check1=true;}
                                    if(i==1||j==1||k==1||l==1||m==1||n==1){check2=true;}
                                    if(i==2||j==2||k==2||l==2||m==2||n==2){check3=true;}
                                    long sum=num[i]+num[j]*10+num[k]*100+num[l]*1000+num[m]*10000+num[n]*100000;
                                    if(sum<=N&&check1&&check2&&check3){count++; }
                                   check1=false; check2=false; check3=false;
                            
                    }
                }
            }
        }
    }
}
}
check1=false; check2=false; check3=false;
if(rep>=5){
for(int i=0;i<3;i++){
    for(int j=0;j<3;j++){
        for(int k=0;k<3;k++){
            for(int l=0;l<3;l++){
                for(int m=0;m<3;m++){
                    
                        
                                
                                    if(i==0||j==0||k==0||l==0||m==0){check1=true;}
                                    if(i==1||j==1||k==1||l==1||m==1){check2=true;}
                                    if(i==2||j==2||k==2||l==2||m==2){check3=true;}
                                    long sum=num[i]+num[j]*10+num[k]*100+num[l]*1000+num[m]*10000;
                                    if(sum<=N&&check1&&check2&&check3){count++; }
                                   check1=false; check2=false; check3=false;
                            
                }
            }
        }
    }
}
}
check1=false; check2=false; check3=false;
if(rep>=4){
for(int i=0;i<3;i++){
    for(int j=0;j<3;j++){
        for(int k=0;k<3;k++){
            for(int l=0;l<3;l++){
                                    if(i==0||j==0||k==0||l==0){check1=true;}
                                    if(i==1||j==1||k==1||l==1){check2=true;}
                                    if(i==2||j==2||k==2||l==2){check3=true;}
                                    long sum=num[i]+num[j]*10+num[k]*100+num[l]*1000;
                                    if(sum<=N&&check1&&check2&&check3){count++; }
                                    check1=false; check2=false; check3=false;
            }
        }
    }
}
}
check1=false; check2=false; check3=false;
if(rep>=3){
for(int i=0;i<3;i++){
    for(int j=0;j<3;j++){
        for(int k=0;k<3;k++){
                                    if(i==0||j==0||k==0){check1=true;}
                                    if(i==1||j==1||k==1){check2=true;}
                                    if(i==2||j==2||k==2){check3=true;}
                                    long sum=num[i]+num[j]*10+num[k]*100;
                                    if(sum<=N&&check1&&check2&&check3){count++; }
                                    check1=false; check2=false; check3=false;
        }
    }
}
}

cout<<count;
return 0;
}


Measured memory_bytes: 256