#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define rep(i, n) for (int i = 0; i < n; ++i)
#define rrep(i, st, n) for (int i = st; i < n; ++i)
using pii = pair<int, int>;
#define chmax(a, b) a = max(a, b)
#define chmin(a, b) a = min(a, b)
#define inf (int)(1e9+7)
#define mod (ll)(1e9+7)
#define eb emplace_back
/*
 abcde
 a * 10^4
 b * 10^3
 c * 10^2
 d * 10
 e
 
 a * (11 - 1)^4 ≡ a
 b * (11 - 1)^3 ≡ -b (11がない項は-1のみ)
 c * (11 - 1)^2 ≡ c
 d * (11 - 1) ≡ -d
 e
 
 (a + c + e) - (b + d) = 0であれば11の倍数
 
 最上位桁から見て偶奇を反転してとっていけばいい
 ちなみに7の倍数判定には1001 = 143 * 7が使える
 abcdefghi
 
 abc * 1000000 = abc * 1000^2 = abc * (1001 - 1)^2
 ghi * 1000 = ghi * (1001 - 1)
 jkl
 
 17819
 1 -7 8 -1 9
   -7 8 -1 9
      8 -1 9
        -1 9
           9
 
 累積和をとる
 1 -6 2 1 10
 -7 1 0 9
 0がでてきた
 781は11で割れる
 
 */
int dp[80007][13];
int main() {
    cin.tie(0); ios::sync_with_stdio(false);
    string s;
    while (cin >> s && s[0] != '0') {
        fill_n(*dp, 80007 * 13, 0);
        rep(i, s.size()) {
            int a = s[i] - '0';
            if (i % 2 == 0) a = -a;
            if (s[i] - '0' != 0) dp[i + 1][(a + 11) % 11]++;
            rep(j, 11) {
                dp[i + 1][(j + a + 11) % 11] += dp[i][j];
            }
        }
        int ans = 0;
        rep(i, s.size()) ans += dp[i + 1][0];
        cout << ans << endl;
    }
}

