const maxn = 255;
maxk = 255;
maxj = 100;
modulo = 30103;
type huge = array[1..maxn]of integer;
var f:text;
n,k,a,b,i,j,l,p,sol:longint;
r:longint;
aux:integer;
s:string;
d:huge;
ap:array[0..9,1..maxn]of longint;
c:array[1..maxn,1..maxj,0..maxk]of longint;
procedure readdata;
begin
assign(f,'diviz.in');
reset(f);
readln(f,k,a,b);
readln(f,s);
n:=length(s);
for i:=1 to length(s) do
begin
val(s[i],d[i],aux);
end;
close(f);
end;
procedure solve;
begin
fillchar(c,sizeof(c),0);
for i:=0 to 9 do
begin
if d[n]=i then
begin
ap[i,n]:=n;
end
else ap[i,n]:=0;
for j:=n-1 downto 1 do
begin
if d[j]=i then
begin
ap[i,j]:=j;
end
else ap[i,j]:=ap[i,j+1];
end;
end;
for i:=1 to 9 do
begin
if ap[i,1]<>0 then
begin
c[1,ap[i,1],i mod k]:=1;
end;
end;
for i:=1 to n do
begin
for j:=1 to n do
begin
for l:=0 to k-1 do
begin
if c[i,j,l]<>0 then
begin
if (l=0) and (a<=i) and (i<=b) then
begin
sol:=(sol+c[i,j,l]) mod modulo;
end;
for p:=0 to 9 do
begin
if ap[p,j+1]<>0 then
begin
c[i+1,ap[p,j+1],(10*l+p) mod k]:=(c[i+1,ap[p,j+1],(10*l+p) mod k]+c[i,j,l]) mod modulo;
end;
end;
end;
end;
end;
end;
end;
procedure writedata;
begin
assign(f,'diviz.out');
rewrite(f);
writeln(f,sol);
close(f);
end;
begin
readdata;
solve;
writedata;
end.