var i,n,k,ans:longint;
dp:array[0..20000] of longint;
procedure dfs(x,y,z:longint);
begin
if z>ans then exit;
if x>=n then
begin
if z<ans then ans:=z;
exit;
end;
dfs(x+1,y,z+1);
if y>0 then dfs(x+y,y,z+2);
dfs(x*2,x,z+7);
end;
begin
readln(n);
if n=0 then
begin
writeln(0);
halt;
end;
ans:=100000000;
dfs(1,0,1);
writeln(ans);
end.
dp:array[0..20000] of longint;
procedure dfs(x,y,z:longint);
begin
if z>ans then exit;
if x>=n then
begin
if z<ans then ans:=z;
exit;
end;
dfs(x+1,y,z+1);
if y>0 then dfs(x+y,y,z+2);
dfs(x*2,x,z+7);
end;
begin
readln(n);
if n=0 then
begin
writeln(0);
halt;
end;
ans:=100000000;
dfs(1,0,1);
writeln(ans);
end.