#include <bits/stdc++.h>
template <class T>
inline T max(T a, T b) {
  return a > b ? a : b;
};
struct data {
  long long a;
  int b;
};
data f[12][20][12][12];
int _max[105];
inline data bf(int x, int y, int z) {
  int X = x - y;
  data ret = {0LL, 0};
  while (X > 0) {
    ++ret.a;
    X -= max(_max[X], z);
  };
  if (X == 0) {
    X -= z;
    ++ret.a;
  };
  ret.b = -X;
  return ret;
};
inline data solve(int i, int j, int k, int x) {
  if (i == 0) {
    if (k > 0) {
      return (data){0, k};
    } else {
      return (data){0, x};
    };
  };
  if (k == 0) {
    data t = f[i - 1][j][max(i, x)][x];
    ++t.a;
    return t;
  };
  data t1 = f[10][j - 1][k][max(x, i - 1)];
  data t2 = f[i - 1][j][t1.b][x];
  return (data){t1.a + t2.a, t2.b};
};
inline void pre() {
  int i, j, k, x;
  for (i = 1; i <= 100; i++) {
    _max[i] = max(_max[i / 10], i % 10);
  };
  for (i = 0; i <= 10; i++) {
    for (j = 0; j <= 9; j++) {
      for (k = 0; k <= 9; k++) {
        f[i][0][j][k] = bf(i, j, k);
      };
    };
  };
  for (i = 0; i <= 10; i++) {
    for (j = 0; j <= 9; j++) {
      for (k = 0; k <= 9; k++) {
        f[i][1][j][k] = bf(i * 10, j, k);
      };
    };
  };
  for (j = 2; j <= 18; j++) {
    for (i = 0; i <= 10; i++) {
      for (k = 0; k <= 9; k++) {
        for (x = 0; x <= 9; x++) {
          f[i][j][k][x] = solve(i, j, k, x);
        };
      };
    };
  };
};
inline int getmax(long long n) {
  int ret = 0;
  while (n) {
    ret = max(1LL * ret, n % 10);
    n /= 10;
  };
  return ret;
};
inline long long solve(long long n) {
  if (n < 10) {
    data t = bf(n, 0, 0);
    return t.a - 1;
  };
  int now = 0;
  long long mod = 1;
  long long ret = 0;
  while (n) {
    int t = n / mod % 10;
    data tmp =
        f[t + 1][now][(t + 1) * mod - n % (mod * 10)][getmax(n / (mod * 10))];
    ret += tmp.a;
    n = n - n % (mod * 10) - tmp.b;
    mod *= 10;
    ++now;
  };
  return ret - 1;
};
int main() {
  pre();
  long long n;
  scanf("%I64d", &n);
  long long ans = 0;
  if (n == 1000000000000000000LL) {
    --n;
    ++ans;
  };
  ans += solve(n);
  printf("%I64d\n", ans);
}
