#include <bits/stdc++.h>
using namespace std;
const int maxN = 2e5+10;
int pow10[maxN],a[maxN],sum[maxN],tong[maxN];
int main()
{
    string s;
    cin>>s;
    int N=s.size();
    pow10[0]=1;
    for(int i=1;i<=N;i++)pow10[i]=pow10[i-1]*10%2019;
    for(int i=0;i<N;i++)a[i+1]=(s[i]-'0')*pow10[N-i-1]%2019;
    int ans=0;
    for(int i=1;i<=N;i++)
    {
        sum[i]=(sum[i-1]+a[i])%2019;
        if(sum[i]==0)ans++;
        ans+=tong[sum[i]];
        tong[sum[i]]++;
    }
    cout<<ans<<endl;
}
