program FiveDigitDivisibility; uses crt; var infile,outfile:text; x,y:integer; D1,D2:integer; n:longint; s,ns,ts:string; procedure countnumbers(ns,ts:string); var x:integer; number:longint; l:integer; t1:string; begin if length(ts) = 0 then begin val(ns,number); if number mod D2 = 0 then inc(n); end else begin l:=length(ts); for x:=1 to l do begin t1:=ts; ns:=ns+t1[x]; delete(t1,x,1); countnumbers(ns,t1); delete(ns,length(ns),1); end; end; end; begin assign(infile,'DATA51.txt'); reset(infile); assign(outfile,'OUT51.txt'); rewrite(outfile); for x:=1 to 5 do begin readln(infile,D1,D2); s:=''; for y:=1 to D1 do s:=s+chr(y+48); n:=0; for y:=1 to D1 do begin ts:=s; ns:=s[y]; delete(ts,y,1); countnumbers(ns,ts); end; writeln(outfile,n); end; close(infile); close(outfile); end.