arr=array[0..1000]of qword;
var
i:longint;
j,n,t,x,y,k,k1:qword;
ans:arr;
function cheng(a:arr; k:longint):arr;
var i,j:longint;
begin
for i:=1 to a[0] do a[i]:=a[i]*k;
for i:=1 to a[0]-1 do begin a[i+1]:=a[i+1]+a[i] div 10; a[i]:=a[i] mod 10; end;
j:=a[0];
while a[j]>10 do begin a[j+1]:=a[j+1]+a[j] div 10; a[j]:=a[j] mod 10; inc(j);end;
a[0]:=j;
cheng:=a;
end;
function jia(a,b:arr):arr;
var i,j:longint; c:arr;
begin fillchar(c,sizeof(c),0);
j:=a[0]; if j<b[0] then j:=b[0];
for i:=1 to j do c[i]:=a[i]+b[i];
for i:=1 to j do begin c[i+1]:=c[i+1]+c[i] div 10; c[i]:=c[i] mod 10; end;
c[0]:=j; if c[c[0]+1]<>0 then inc(c[0]);
jia:=c;
end;
function cz(a:longint):arr;
var i,j:longint;
begin
j:=6; cz[0]:=1; cz[1]:=1;
for i:=a downto a-2 do
if (j=1)or((i mod 3<>0)and(i mod 2<>0)) then cz:=cheng(cz,i) else
begin
if (i mod 6=0)and(j=6) then begin cz:=cheng(cz,i div 6); j:=1; end else
if (i mod 2=0)and(j mod 2=0) then begin
cz:=cheng(cz,i div 2); j:=j div 2; end else
if (i mod 3=0)and(j mod 3=0) then begin cz:=cheng(cz,i div 3); j:=j div 3; end;
end;
end;
begin
readln(n,k);
t:=n div k;
k1:=n-t*k;
ans:=jia(cheng(cz(t+1),k1),cheng(cz(t),k-k1));
for i:=ans[0] downto 1 do write(ans[i]);
end.