#include <bits/stdc++.h>
using namespace std;
long long int modulo = 1e9 + 7;
int n;
const int limite = 100001;
long long int cuantoshasta[limite], sumahasta[limite], valor[limite],
    prodhasta[limite];
long long int cuatros[limite][10], sietes[limite][10], diezala[limite],
    dosala[limite], sumahasta7[limite][10], prodhasta7[limite][10];
long long int d[limite];
long long int computa(string &s) {
  for (int i = 0; i < n; i++) d[i] = s[n - 1 - i] - '0';
  valor[0] = d[0];
  if (d[0] == 4) {
    cuantoshasta[0] = 1;
    sumahasta[0] = 4;
    prodhasta[0] = 0;
  } else {
    cuantoshasta[0] = 2;
    sumahasta[0] = 11;
    prodhasta[0] = 28;
  }
  for (int i = 1; i < n; i++) {
    valor[i] = (valor[i - 1] + diezala[i] * d[i]) % modulo;
    if (d[i] == 4) {
      cuantoshasta[i] = cuantoshasta[i - 1];
      sumahasta[i] =
          (4 * diezala[i] % modulo * cuantoshasta[i - 1] + sumahasta[i - 1]) %
          modulo;
      prodhasta[i] =
          (4 * diezala[i] % modulo *
               (2 * sumahasta[i - 1] - cuatros[i - 1][4] - valor[i - 1] +
                4 * diezala[i] % modulo * (cuantoshasta[i - 1] - 1) % modulo) %
               modulo +
           prodhasta[i - 1]) %
          modulo;
    } else {
      cuantoshasta[i] = (cuantoshasta[i - 1] + dosala[i]) % modulo;
      sumahasta[i] =
          (sumahasta7[i][4] + 7 * diezala[i] % modulo * cuantoshasta[i - 1] +
           sumahasta[i - 1]) %
          modulo;
      prodhasta[i] =
          (prodhasta7[i][4] + sietes[i][4] * cuatros[i][7] % modulo +
           7 * diezala[i] % modulo *
               (2 * sumahasta[i - 1] - cuatros[i - 1][4] - valor[i - 1] +
                7 * diezala[i] % modulo * (cuantoshasta[i - 1] - 1) % modulo) %
               modulo +
           prodhasta[i - 1]) %
          modulo;
    }
  }
  return prodhasta[n - 1];
}
int main() {
  ios::sync_with_stdio(false);
  string sl, sr;
  cin >> sl >> sr;
  n = int(sl.size());
  cuatros[0][4] = 4;
  cuatros[0][7] = 7;
  sietes[0][4] = 4;
  sietes[0][7] = 7;
  diezala[0] = 1;
  dosala[0] = 1;
  sumahasta7[0][4] = 4;
  sumahasta7[0][7] = 11;
  prodhasta7[0][4] = 0;
  prodhasta7[0][7] = 28;
  for (int i = 1; i < n; i++) {
    diezala[i] = (diezala[i - 1] * 10) % modulo;
    dosala[i] = (dosala[i - 1] * 2) % modulo;
    cuatros[i][4] = (cuatros[i - 1][4] + 4 * diezala[i]) % modulo;
    cuatros[i][7] = (cuatros[i - 1][4] + 7 * diezala[i]) % modulo;
    sietes[i][4] = (sietes[i - 1][7] + 4 * diezala[i]) % modulo;
    sietes[i][7] = (sietes[i - 1][7] + 7 * diezala[i]) % modulo;
    sumahasta7[i][4] =
        (4 * diezala[i] % modulo * dosala[i] + sumahasta7[i - 1][7]) % modulo;
    sumahasta7[i][7] = (sumahasta7[i][4] + 7 * diezala[i] % modulo * dosala[i] +
                        sumahasta7[i - 1][7]) %
                       modulo;
    prodhasta7[i][4] =
        (4 * diezala[i] % modulo *
             (2 * sumahasta7[i - 1][7] - cuatros[i - 1][4] - sietes[i - 1][7] +
              4 * diezala[i] % modulo * (dosala[i] - 1) % modulo) %
             modulo +
         prodhasta7[i - 1][7]) %
        modulo;
    prodhasta7[i][7] =
        (prodhasta7[i][4] + sietes[i][4] * cuatros[i][7] % modulo +
         7 * diezala[i] % modulo *
             (2 * sumahasta7[i - 1][7] - cuatros[i - 1][4] - sietes[i - 1][7] +
              7 * diezala[i] % modulo * (dosala[i] - 1) % modulo) %
             modulo +
         prodhasta7[i - 1][7]) %
        modulo;
  }
  cout << ((computa(sr) - computa(sl)) % modulo + modulo) % modulo << endl;
}
