#include<bits/stdc++.h>
using namespace std;
long long a[233];
int b[3]={3,5,7};
int vis[3];
int ans;
long long t ;
void dfs(int i)
{
    long long  num=0;
    memset(vis,0,sizeof(vis));
    for(int j=1;j<i;j++)
    {
        num=num*10+a[j];
        if(a[j]==3) vis[0]=1;
        if(a[j]==5) vis[1]=1;
        if(a[j]==7) vis[2]=1;
    }

    int flag= vis[0]*vis[1]*vis[2];
    if(num > t ) return ;

    if(flag) {ans++;
    }
    for(int j = 0 ;j<3;j++)
    {
        a[i]=b[j];
        dfs(i+1);
    }
}
int main()
{

  scanf("%d",&t);
   ans=0;
  dfs(1);

  printf("%d\n",ans);
}
