#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int n, f[N][13];
long long ans;
char s[N];
int dfs(int x, int y) {
  if (x > n) return x - 1;
  if (~f[x][y]) return f[x][y];
  if (s[x] >= y) return x - 1;
  return f[x][y] = dfs(x + 1, (y * (y - 1) / 2 + 10 + s[x] % 10) % 11);
}
int main() {
  memset(f, -1, sizeof(f));
  scanf("%s", s + 1), n = strlen(s + 1);
  for (int i = (1); i <= (n); i++) s[i] -= '0';
  for (int i = (1); i <= (n); i++)
    if (s[i]) ans += dfs(i + 1, s[i]) - i + 1;
  printf("%lld\n", ans);
  return 0;
}
