import java.util.Scanner;


public class Main{
    
    public static void main(String[] args){
        Scanner in=new Scanner(System.in);
        String line = in.nextLine();
        
        char[] charArr = line.toCharArray();
        
        int len=charArr.length;
        
        long res=0;
        for(int i=0;i<len-1;i++){
            res=(res+powMod(2,len-i-1,1000000007))%1000000007;
        }
        for(int i=0;i<len;i++){
            if(charArr[i]>'4' && charArr[i]<'7'){
                res=(res+(powMod(2,len-i-1,1000000007))%1000000007)%1000000007;
                break;
            }else if(charArr[i]>'7'){
                res=(res+(2*powMod(2,len-i-1,1000000007))%1000000007)%1000000007;
                break;
            }else if(charArr[i]=='4'){
                if(i==len-1)
                    res=(res+1)%1000000007;
            }else if(charArr[i]=='7'){
                if(i==len-1)
                    res=(res+2)%1000000007;
                else
                    res=(res+powMod(2,len-i-1,1000000007))%1000000007;
            }else{
                break;
            }
        }
        
        
        System.out.println(res);
        
    }
    private static long powMod(long  a,long  b,long m){
        long res=1;
        a%=m;
        while(b!=0){
            if((b&1 )== 1)
                res=(res*a)%m;
            a=(a*a)%m;
            b>>=1;
        }
        return res;
             }
   
    
}