#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#define n 200000
typedef long long ll;

ll cal(ll *x,ll a,ll c)
{
  ll y=0,z=c;
  for(ll l=a;l<=(a+c-1);l++){
    y+=(ll)(pow(10,z-1))*(x[l]);
    z--;
    //printf("%d\n",x[l]);
  }
  return y;
}
void main(void)
{
  
  ll N=0,ans=0;
  //scanf("%d",&N);
  char str[n];
  scanf("%s",str);
  ll i=0;
  while(str[i]!='\0'){
    i++;
    N++;
  }
  ll str_int[N+1],tmp=0,tmp1;
  str_int[0]=atol(str);
  for(ll j=1;j<=N;j++){
    str_int[j]=(str_int[0]-tmp)/(ll)(pow(10,N-j));
    tmp+=str_int[j]*(ll)(pow(10,N-j));
  }
  //tmp=cal(str_int,1,4);
  
  for(int k=4;k<=N;k++){
    for(int m=1;m<=(N-k+1);m++){
      if((cal(str_int,m,k)%2019)==0){
        ans++;
        //tmp1=cal(str_int,m,k);
      }
    }
  }
  
      
  printf("%lld",ans);


}