#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define rep(i,n)for(ll i=0;i<n;i++)

const ll INF = 1001001001;

ll gcd(ll a,ll b){
  if(b==0) return a;
  else return gcd(b,a%b);
}



int main(){
  string s;
  cin>>s;
  ll len=s.size();
  vector<ll>t(len,0);
  vector<ll>dp(len);
  dp[len-1]=s.at(len-1);
  t[len-1]=s.at(len-1);
  ll ans=0;
  for(ll i=len-2;i>=0;i--){
    dp[i]=dp[i+1]+pow(10,len-1-i)*s.at(i-1);
    t[i]=dp[i]%2019;
  }
  sort(t.begin(),t.end());
  
  for(ll i=0;i<len-1;i++){
    if(t[i]==t[i+1]){
      ans++;
    }
  }

  cout<<ans<<endl;
  
  
  
  
}

