//#define _GLIBCXX_DEBUG
#include <bits/stdc++.h>
#include <algorithm>
#define rep(i,n) for(int i=0;i<(n);++i)
#define all(a) (a).begin(),(a).end()
using namespace std;
using Graph = vector<vector<int>>;
typedef long long ll;
const int mod= 1e+9+7;

int main(){
    string s; cin>>s;
    ll cnt=0;
    if(s.size()<4){
        cout<<0<<endl;
        return 0;
    }
    for(ll i=0;i<s.size()-3;i++){
        for(ll j=4;j<=s.size()-i;j++){
        if(stoull(s.substr(i,j))%2019==0)cnt++;
        }
    }
    cout<<cnt<<endl;

}



