#ifdef _WIN32 # define LL "%I64d" #else # define LL "%Ld" #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define null NULL #define mp make_pair #define pb(a) push_back(a) #define sz(a) ((int)(a).size()) #define all(a) a.begin() , a.end() #define fi first #define se second #define relaxMin(a , b) (a) = min((a),(b)) #define relaxMax(a , b) (a) = max((a),(b)) #define SQR(a) ((a)*(a)) typedef vector vi; typedef pair pii; typedef long long ll; #define INF 1000000000 int N; int nxt[100010][10]; char buf[100]; int main(){ freopen("numbers.in" , "r" , stdin); freopen("numbers.out" , "w" , stdout); scanf("%d" , &N); for(int i=0;i<=N;++i) for(int j=0;j<10;++j) nxt[i][j] = INF; for(int i=0;i=0;--i) for(int j=0;j<10;++j) relaxMin(nxt[i][j] , nxt[i+1][j]); int ANS = INF; for(int i=0;i N) continue; relaxMin(ANS , GO - i + 1); } if(ANS > N)puts("-1"); else printf("%d\n" , ANS); return 0; }