import java.util.*;
public class Main {
public static class pair{
int x;
int y;
public pair(int x,int y) {
this.x=x;
this.y=y;
}
}
public static void bfs(int n) {
boolean check[][] = new boolean[3000][3000];
Queue<pair> q = new LinkedList<>();
int dist[][] = new int[3000][3000];
pair p = new pair(1,0);
q.add(p);
check[p.x][p.y]=true;
dist[1][0]=0;
while(true) {
pair k = q.poll();
if(k.x==n)
break;
int x,y;
x=k.x;
y=k.y;
pair temp;
//클립보드에 복사
if(k.x!=k.y) {
if(check[k.x][k.x]!=true) {
dist[k.x][k.x]=dist[k.x][k.y]+1;
temp=new pair(x,x);
q.add(temp);
check[temp.x][temp.y]=true;
}
}
//이모티콘 복사
if(k.y!=0) {
if(check[k.x+k.y][k.x]!=true) {
dist[k.x+k.y][k.y]=dist[k.x][k.y]+1;
temp=new pair(x+y,y);
q.add(temp);
}
}
//이모티콘 1개 삭제
if(k.x>1) {
if(check[k.x-1][k.x]!=true) {
dist[k.x-1][k.y]=dist[k.x][k.y]+1;
temp=new pair(x-1,y);
q.add(temp);
}
}
}
int min=99999;
for(int i=0;i<3000;i++) {
if(dist[n][i]<min && dist[n][i]!=0)
min=dist[n][i];
}
return;
}
public static void main
(String[] args
) { Scanner sc
= new Scanner
(System.
in); int n;
n=sc.nextInt();
bfs(n);
}
}
aW1wb3J0IGphdmEudXRpbC4qOwoKcHVibGljIGNsYXNzIE1haW4gewoJcHVibGljIHN0YXRpYyBjbGFzcyBwYWlyewoJCWludCB4OwoJCWludCB5OwoJCXB1YmxpYyBwYWlyKGludCB4LGludCB5KSB7CgkJCXRoaXMueD14OwoJCQl0aGlzLnk9eTsKCQl9Cgl9CgkKCXB1YmxpYyBzdGF0aWMgdm9pZCBiZnMoaW50IG4pIHsKCQlib29sZWFuIGNoZWNrW11bXSA9IG5ldyBib29sZWFuWzMwMDBdWzMwMDBdOwoJCVF1ZXVlPHBhaXI+IHEgPSBuZXcgTGlua2VkTGlzdDw+KCk7CgkJaW50IGRpc3RbXVtdID0gbmV3IGludFszMDAwXVszMDAwXTsKCQlwYWlyIHAgPSBuZXcgcGFpcigxLDApOwoJCXEuYWRkKHApOwoJCWNoZWNrW3AueF1bcC55XT10cnVlOwoJCWRpc3RbMV1bMF09MDsKCQl3aGlsZSh0cnVlKSB7CgkJCXBhaXIgayA9IHEucG9sbCgpOwoJCQlpZihrLng9PW4pCgkJCQlicmVhazsKCQkJaW50IHgseTsKCQkJeD1rLng7CgkJCXk9ay55OwoJCQlwYWlyIHRlbXA7CgkJCS8v7YG066a967O065Oc7JeQIOuzteyCrAoJCQlpZihrLnghPWsueSkgewoJCQkJaWYoY2hlY2tbay54XVtrLnhdIT10cnVlKSB7CgkJCQkJZGlzdFtrLnhdW2sueF09ZGlzdFtrLnhdW2sueV0rMTsKCQkJCQl0ZW1wPW5ldyBwYWlyKHgseCk7CgkJCQkJcS5hZGQodGVtcCk7CgkJCQkJY2hlY2tbdGVtcC54XVt0ZW1wLnldPXRydWU7CgkJCQl9CgkJCX0KCQkJLy/snbTrqqjti7DsvZgg67O17IKsCgkJCWlmKGsueSE9MCkgewoJCQkJaWYoY2hlY2tbay54K2sueV1bay54XSE9dHJ1ZSkgewoJCQkJCWRpc3Rbay54K2sueV1bay55XT1kaXN0W2sueF1bay55XSsxOwoJCQkJCXRlbXA9bmV3IHBhaXIoeCt5LHkpOwoJCQkJCXEuYWRkKHRlbXApOwoJCQkJfQoJCQl9CgkJCQoJCQkvL+ydtOuqqO2LsOy9mCAx6rCcIOyCreygnAoJCQlpZihrLng+MSkgewoJCQkJaWYoY2hlY2tbay54LTFdW2sueF0hPXRydWUpIHsKCQkJCQlkaXN0W2sueC0xXVtrLnldPWRpc3Rbay54XVtrLnldKzE7CgkJCQkJdGVtcD1uZXcgcGFpcih4LTEseSk7CgkJCQkJcS5hZGQodGVtcCk7CgkJCQl9CgkJCX0KCQl9CgkJaW50IG1pbj05OTk5OTsKCQlmb3IoaW50IGk9MDtpPDMwMDA7aSsrKSB7CgkJCWlmKGRpc3Rbbl1baV08bWluICYmIGRpc3Rbbl1baV0hPTApCgkJCQltaW49ZGlzdFtuXVtpXTsKCQl9CgkJCgkJU3lzdGVtLm91dC5wcmludGxuKG1pbik7CgkJcmV0dXJuOwoJfQoJCglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CgkJU2Nhbm5lciBzYyA9IG5ldyBTY2FubmVyKFN5c3RlbS5pbik7CgkJaW50IG47CgkJbj1zYy5uZXh0SW50KCk7CgkJYmZzKG4pOwoJCQoJfQp9