program diviz;
const
fin='diviz.in';
fout='diviz.out';
eps=30103;
var
cif,k,a,b,i,j,l,m,n,r:longint;
nr:array[0..201] of integer;
first:array[0..9,0..201] of integer;
ch:char;
sum:longint;
new,old:byte;
c:array[0..1,0..200,0..100] of longint;
begin
assign(input,fin);
reset(input);
readln(k,a,b);
nr[0]:=0;
while not(seekeof(input)) do
begin
read(ch);
inc(nr[0]);
nr[nr[0]]:=ord(ch)-48;
end;
close(input);
assign(output,fout);
rewrite(output);
for cif:=0 to 9 do
first[cif,nr[0]+1]:=maxint;
for cif:=0 to 9 do
for i:=nr[0] downto 1 do
begin
if nr[i]=cif then
first[cif,i]:=i
else
first[cif,i]:=first[cif,i+1];
end;
for i:=1 to nr[0] do
begin
inc(c[1,i,nr[i] mod k]);
for j:=i+1 to nr[0] do
inc(c[1,j,nr[i] mod k]);
end;
new:=1;old:=0;
if 1>=a then
begin
sum:=(sum+c[new,nr[0],0])mod eps;
end;
for l:=2 to b do
begin
old:=new;new:=old xor 1;
for i:=0 to nr[0] do
for r:=0 to k-1 do
c[new,i,r]:=0;
for i:=1 to nr[0] do
for r:=0 to k-1 do
if c[old,i,r]-c[old,i-1,r]<>0 then
for cif:=0 to 9 do
begin
if first[cif,i+1]<>maxint then
if first[nr[i],i+1]>=first[cif,i+1] then
begin
c[new,first[cif,i+1],(r*10+cif)mod k]:=(c[new,first[cif,i+1],(r*10+cif)mod k]+c[old,i,r]-c[old,i-1,r])mod eps;
end;
end;
for i:=1 to nr[0] do
for r:=0 to k-1 do
c[new,i,r]:=(c[new,i-1,r]+c[new,i,r]) mod eps;
if l>=a then
begin
sum:=(sum+c[new,nr[0],0])mod eps;
end;
end;
writeln(sum);
close(output);
end.