#include "bits/stdc++.h" using namespace std; typedef long long ll; #define FOR(i,a,b) for(int i=(a);i<(int)(b);++i) #define rep(i,n) FOR(i,0,n) #define mset(a,x) memset(a,x,sizeof(a)) ll dp[114514][2][2][3][8]; const int MOD = int(1e9) + 7; ll calc(string s, bool less) { vector ds; for(char& c : s) ds.push_back(c - '0'); const int N = ds.size(); mset(dp, 0); dp[0][0][0][0][0] = 1; rep(i, N) rep(j, 2) { int lim = 9; if(j == 0) lim = ds[i]; rep(k, 2) rep(m3, 3) rep(m8, 8) { rep(d, lim + 1) { (dp[i + 1][j || d < lim][k || d == 3][(m3 + d) % 3][(m8 * 10 + d) % 8] += dp[i][j][k][m3][m8]) %= MOD; } } } ll ret = 0; rep(j, 2) rep(k, 2) rep(m3, 3) rep(m8, 8) { if(less && j == 0) continue; if((k || m3 == 0) && m8 != 0) { ret += dp[N][j][k][m3][m8]; ret %= MOD; } } return ret; } int main() { string a, b; cin >> a >> b; cout << calc(b, 0) - calc(a, 1) << endl; return 0; }