#include <bits/stdc++.h>
using namespace std;
#define int long long
#define mod 1000000007
int n,m,d,a[2005],book[2005][2005];
char l[2005],r[2005];
int dfs(int x,int num,int p)
{
if(x>n)
{
if(num)
return 0;
return 1;
}
if(!p && book[x][num]!=-1)
return book[x][num];
int to=9,cnt=0;
if(p)
to=a[x];
if(x%2)
for(int i=0;i<=to;i++)
{
if(i==d)
continue;
if(i==to && p)
cnt+=dfs(x+1,(num*10%m+i)%m,1);
else
cnt+=dfs(x+1,(num*10%m+i)%m,0);
cnt%=mod;
}
else if(to>=d)
{
if(d==to && p)
cnt+=dfs(x+1,(num*10%m+d)%m,1);
else
cnt+=dfs(x+1,(num*10%m+d)%m,0);
cnt%=mod;
}
if(!p)
book[x][num]=cnt;
return cnt;
}
signed main( void )
{
scanf("%lld%lld%s%s",&m,&d,l+1,r+1);
n=strlen(l+1);
for(int i=0;i<2005;i++)
for(int j=0;j<2005;j++)
book[i][j]=-1;
for(int i=1;i<=n;i++)
a[i]=l[i]-'0';
int numl=dfs(1,0,1);
int ck=1,cnt=0;
for(int i=1;i<=n;i++)
{
cnt+=a[i];
cnt%=m;
if(i%2==0 && a[i]!=d)
ck=0;
}
if(cnt)
ck=0;
for(int i=1;i<=n;i++)
a[i]=r[i]-'0';
int numr=dfs(1,0,1);
cout<<(numr-numl+ck+mod)%mod;
return 0;
}