#include <stdio.h>
#include<limits.h>
#include<float.h>
int mins( int p, int q, int r);
int main(void) {
// your code goes here
int n,i;
int ar[n+1];
ar[0]=0;
ar[1]=0;
for(i=2;i<=n;i++)
{
if((i%2)==0 && (i%3)==0)
ar[i]=mins(ar[i/2],ar[i-1],ar[i/3]);
else if((i%2)==0)
ar[i]=mins(ar[i/2],ar[i-1],1000);
else if((i%3)==0)
ar[i]=mins(ar[i/3],ar[i-1],100);
else
ar[i]=ar[i-1] + 1;
}
for(int i=1;i<=n;i++)
}
int mins( int p, int q, int r)
{
printf("mins = %d %d %d\n",p
,q
,r
); if((p<q) && (p<r))
return p;
else if((q < p) && (q < r))
return q;
else
return r;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlPGxpbWl0cy5oPgojaW5jbHVkZTxmbG9hdC5oPgppbnQgbWlucyggaW50IHAsIGludCBxLCBpbnQgcik7CmludCBtYWluKHZvaWQpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCWludCBuLGk7CglzY2FuZigiJWQiLCZuKTsKCWludCBhcltuKzFdOwoJYXJbMF09MDsKCWFyWzFdPTA7Cglmb3IoaT0yO2k8PW47aSsrKQogICAgewogICAgICAgIGlmKChpJTIpPT0wICYmIChpJTMpPT0wKQogICAgICAgIGFyW2ldPW1pbnMoYXJbaS8yXSxhcltpLTFdLGFyW2kvM10pOwogICAgICAgIGVsc2UgaWYoKGklMik9PTApCiAgICAgICAgYXJbaV09bWlucyhhcltpLzJdLGFyW2ktMV0sMTAwMCk7CiAgICAgICAgZWxzZSBpZigoaSUzKT09MCkKICAgICAgICBhcltpXT1taW5zKGFyW2kvM10sYXJbaS0xXSwxMDApOwogICAgICAgIGVsc2UKICAgICAgICBhcltpXT1hcltpLTFdICsgMTsKICAgIH0KICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKQoJcHJpbnRmKCIlZCAiLGFyW2ldKTsKfQoKaW50IG1pbnMoIGludCBwLCBpbnQgcSwgaW50IHIpCnsKICAgIHByaW50ZigibWlucyA9ICVkICVkICVkXG4iLHAscSxyKTsKICAgIGlmKChwPHEpICYmIChwPHIpKQogICAgcmV0dXJuIHA7CiAgICBlbHNlIGlmKChxIDwgcCkgJiYgKHEgPCByKSkKICAgIHJldHVybiBxOwogICAgZWxzZQogICAgcmV0dXJuIHI7Cn0=