/*
TASK:sub
LANG:C++
*/
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <math.h>
#include <stdlib.h>
#define FOR(i,n) for(i=0;i<n;i++)
#define FoR(i,n) for(i=n-1;i>=0;i--)
#define pb push_back
using namespace std;

int minbr=100000;

void find(int N, int br)
{
    if (N<1)
        if (br<minbr){ minbr=br; return;}
    int K;
    K=N%10;
    if(K>0) find(N-K,br+1);
    
    if (N>=10)
    {
        K=(N%100)/10;
        if(K>0) find(N-K,br+1);
        
    }
    else return;
    if (N>=100)
    {
        K=(N%1000)/100;
        if(K>0) find(N-K,br+1);
        
    }
    else return;
    if (N>=1000)
    {
        K=(N%10000)/1000;
        if(K>0) find(N-K,br+1);
        
    }
    else return;
    if (N>=10000)
    {
        K=(N%100000)/10000;
        if(K>0) find(N-K,br+1);
        
    }
    else return;
    
}
    
    
int main()
{
    int N;
    
    cin >> N;
    find(N,0);
    cout << minbr << "\n";
    return 0;
}
