Cod sursa(job #220175)
program naspanaspa;
var v:array[1..1000000]of int64;
i,j,k:integer;
n,aux,c,d:int64;
f,g:text;
begin
assign(f,'pascal.in');reset(f);
assign(g,'pascal.out');rewrite(g);
readln(f,n,d);
v[1]:=1;k:=1;
for i:=2 to n do begin
if i mod 2=0 then begin
inc(k);
for j:=k downto 2 do v[j]:=v[j]+v[j-1];
v[1]:=2*v[1];
end
else begin
aux:=v[2];
for j:=1 to k do v[j]:=v[j]+v[j+1];
end;
end;
c:=0;
for i:=1 to k do if v[i]mod d=0 then c:=c+1;
if (v[1]mod d=0) and (n div 2=1) then writeln(g,2*(c-1)+1)
else writeln(g,2*c);
close(g);
end.