#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ld long double
#define vi vector<int>
#define vl vector<ll>
#define vld vector<ld>
#define all(a) a.begin(), a.end()
#define ull unsigned long long
#define endl '\n'
const ll MOD = 1e9 + 7;

#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")

void fileio() {
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
}

void read2d(vector<vector<int>>&arr,int n,int m) {
    for (int i =0;i<n;i++) {
        for (int j =0;j<m;j++) {
            cin>>arr[i][j];
        }
    }
}

void print2d(vector<vector<int>>&arr,int n,int m) {
    for (int i =0;i<n;i++) {
        for (int j =0;j<m;j++) {
            cout<<arr[i][j]<<" ";
        }
        cout<<'\n';
    }
}

void read1d(vector<int>&arr) {
    for (int i =0;i<arr.size();i++) {
        cin>>arr[i];
    }
}
void read1d(vector<ll>&arr) {
    for (int i =0;i<arr.size();i++) {
        cin>>arr[i];
    }
}

void print1d(vector<int>&arr) {
    for (int i =0;i<arr.size();i++) {
        cout<<arr[i]<<" ";
    }
}
string s ;vector<ll>lucky;
ll cnt;ll ans=LLONG_MAX;
bool isLucky(ll n ) {
    string  s = to_string(n);
    for (auto c : s ) {
        if (c!='4'&&c!='7') {
            return false;
        }
    }
    return true;
}
bool isSuperLucky(ll n ) {
    int cnt4=0,cnt7=0;
    string  s = to_string(n);
    for (auto c : s ) {
        if (c!='4'&&c!='7') {
            return false;
        }
        if (c=='4') {
            cnt4++;
        }
        if (c=='7') {
            cnt7++;
        }
    }
    return cnt4==cnt7;
}
ll howmany(ll n ) {
    int cnt=0;
    while (n>0) {
        n/=10;
        cnt++;
    }
    return cnt;
}
ll sum=0;ll l , r,digits;ll last;
void genhelper(int n ,int cr,ll new_number) {
    if (cr==11) {
        return;
    }
    if (isLucky(new_number)&&new_number>=r) {
        ans=min(ans,new_number);
        return;
    }


    genhelper(n,cr+1,new_number*10 + 4 );
    genhelper(n,cr+1,new_number*10 + 7 );
}

void genhelper2(int cr, ll new_number) {
    if (cr == 11) {
        return;
    }

    if (new_number > r) {
        return;
    }

    if (new_number > 0) {
        ans = max(ans, new_number);
    }

    genhelper2(cr + 1, new_number * 10 + 4);
    genhelper2(cr + 1, new_number * 10 + 7);
}
void gen(int n ,int len,int cr,ll new_number) {
    if (cr==len) {
        bool found=0;
        if (new_number>=l&&new_number<=r) {
            found=1;
            sum+=(new_number-l)*new_number+new_number;
            l=new_number+1;
        }

        return;
    }
    gen(n,len,cr+1,new_number*10 + 4 );
    gen(n,len,cr+1,new_number*10 + 7 );
}

void solve() {
    ans=0,sum=0;
    cin>>l>>r;
    genhelper2(0,0);
     last=ans;
    ans=LLONG_MAX;
    genhelper(0,0,0);
    for (int i =1;i<=10;i++) {
        gen(0,i,0,0);
    }
    if (l>last && !isLucky(r)) {
        sum+=(r-l+1)*ans;
    }
    cout<<sum<<endl;

}
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

  // fileio();

    int t = 1;
    //cin >> t;
    while (t--)
    {
        solve();
    }
}
