221,255,295,339,389,447,511,584,667,759,863,981,1112,1259,1425,1609,1815,2047,2303,
2589,2909,3263,3657,4096,4581,5119,5717,6377,7107,7916,8807,9791,10879,12075,13393,
14847,16443,18199,20131,22249,24575,27129,29926,32991,36351,40025,44045,48445,
53249,58498,64233,70487,77311,84755,92863,101697,111321,121791,133183,145577,
159045,173681,189585,206847,225584,245919,267967,291873,317787,345855,376255,
409173,444792,483329,525015,570077,618783,671417,728259,789639,855905,927405,1004543,
1087743,1177437,1274117,1378303,1490527,1611387,1741520,1881577,2032289,2194431,
2368799,2556283,2757825,2974399,3207085,3457026,3725409,4013543,4322815,4654669};
var b:array[1..20] of integer;
i,j,n,s,k:longint;
procedure dfs(x,y:integer);
var i:integer;
begin
for i:=x+1 to y do
if y-i>x then dfs(i,y-i)
else begin s:=s+1; exit; end;
end;
begin
read(n); s:=0; k:=0;
dfs(0,n);
write(s-1);
end.