// 4/26 リアルタイム参加

#include <iostream>
#include <vector>
#include <string>
using namespace std;

int main() {
    string S;
    cin >> S;
    int N = S.size();
    // cout << "S is " << S << endl;
    // cout << "N is " << N << endl;

    int ans = 0;

    for (int i = 0; i < N ; i++) {
        string sub;
        int amari = 0;
        for (int j = i; j < N; j++) {
            // int s = atoi(S.substr(i, j - i + 1).c_str());
            // if (s % 2019 == 0) {
            //     ans++;
            //     // cout << "i, j = " << i << " " << j << endl;
            // }d

            // cout << atoi(S.substr(j, 1).c_str()) << endl;
            // amari = (amari * 10 + atoi(S.substr(j, 1).c_str())) % 2019;

            int s;
            s = S[j] - '0';
            // cout << s << endl;

            amari = (amari * 10 + s) % 2019;

            if (amari == 0) {
                ans++;
            }
        }
    }

    cout << ans << endl;
}