#include <iostream>
#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
string a,b;
int m, d;
ll M = 1e9 + 7;
const int N = 2e3 + 5;
ll dp[N][2][2];
ll solve(int i, int nz, int pos, int ucan, int lcan ){
if(i < 0) return 1ll;
if(~dp[i][nz][pos] && ucan && lcan) return dp[i][nz][pos];
int ub = b[m - 1 - i] - '0';
int lb = a[m - 1 - i] - '0';
int kub = (ucan)? 9: ub; int klb = (lcan)?0:lb;
ll ans = 0ll;
cout<<i<<endl;
cout<<ub<<" "<<kub<<endl;
cout<<lb<<" "<<klb<<endl;
for(int dig = klb; dig <= kub; dig++){
int zer = (nz && (dig == 0));
if(zer) ans = (ans + solve(i - 1,zer, pos, ucan||(dig < ub), lcan||(dig>lb)) )%M;
else{
if(pos && dig != d)
ans = (ans + solve(i-1,zer,pos^1,ucan||(dig < ub), lcan||(dig>lb)))%M;
else if(dig == d)
ans = (ans + solve(i-1,zer,pos^1,ucan||(dig < ub), lcan||(dig>lb)))%M;
}
}
if(ucan && lcan) return dp[i][nz][pos]= ans;
else return ans;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
memset(dp, - 1, sizeof(dp));
cin>>m>>d;
cin>>a>>b;
cout<<solve(m - 1, 1,1,0,0)<<"\n";
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4gCnR5cGVkZWYgbG9uZyBsb25nIGxsOwoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKc3RyaW5nIGEsYjsgCmludCBtLCBkOyAKbGwgTSA9IDFlOSArIDc7IApjb25zdCBpbnQgTiA9IDJlMyArIDU7IAoKbGwgZHBbTl1bMl1bMl07IAoKbGwgc29sdmUoaW50IGksIGludCBueiwgaW50IHBvcywgaW50IHVjYW4sIGludCBsY2FuICl7CgogICAgIGlmKGkgPCAwKSByZXR1cm4gMWxsOyAKCiAgICAgaWYofmRwW2ldW256XVtwb3NdICYmIHVjYW4gJiYgbGNhbikgcmV0dXJuIGRwW2ldW256XVtwb3NdOyAKCiAgICAgaW50IHViID0gYlttIC0gMSAtIGldIC0gJzAnOyAKICAgICBpbnQgbGIgID0gYVttIC0gMSAtIGldIC0gJzAnOyAKICAgICBpbnQga3ViID0gKHVjYW4pPyA5OiB1YjsgaW50IGtsYiA9IChsY2FuKT8wOmxiOyAKICAgICBsbCBhbnMgPSAwbGw7IAogICAgICBjb3V0PDxpPDxlbmRsOyAKICAgICBjb3V0PDx1Yjw8IiAiPDxrdWI8PGVuZGw7IAogICAgIGNvdXQ8PGxiPDwiICI8PGtsYjw8ZW5kbDsKICAgIGZvcihpbnQgZGlnID0ga2xiOyBkaWcgPD0ga3ViOyBkaWcrKyl7CiAgICAgICAgaW50IHplciA9IChueiAmJiAoZGlnID09IDApKTsgCiAgICAgICAgaWYoemVyKSBhbnMgPSAoYW5zICsgc29sdmUoaSAtIDEsemVyLCBwb3MsIHVjYW58fChkaWcgPCB1YiksIGxjYW58fChkaWc+bGIpKSApJU07IAogICAgICAgIGVsc2V7CiAgICAgICAgICAgICBpZihwb3MgJiYgZGlnICE9IGQpCiAgICAgIGFucyA9IChhbnMgKyBzb2x2ZShpLTEsemVyLHBvc14xLHVjYW58fChkaWcgPCB1YiksIGxjYW58fChkaWc+bGIpKSklTTsgCiAgICAgICAgICAgICBlbHNlIGlmKGRpZyA9PSBkKSAKYW5zID0gKGFucyArIHNvbHZlKGktMSx6ZXIscG9zXjEsdWNhbnx8KGRpZyA8IHViKSwgbGNhbnx8KGRpZz5sYikpKSVNOyAKICAgICAgICAgfQogICAgfQogICAgaWYodWNhbiAmJiBsY2FuKSByZXR1cm4gZHBbaV1bbnpdW3Bvc109IGFuczsgCiAgICBlbHNlIHJldHVybiBhbnM7IAp9CgppbnQgbWFpbigpIHsKCWlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyAKICAgIGNpbi50aWUoTlVMTCk7IGNvdXQudGllKE5VTEwpOyAKICAgIG1lbXNldChkcCwgLSAxLCBzaXplb2YoZHApKTsgCiAgICBjaW4+Pm0+PmQ7IAogICAgY2luPj5hPj5iOyAKICAgY291dDw8c29sdmUobSAtIDEsIDEsMSwwLDApPDwiXG4iOyAKCn0=