#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#define n 200000

int cal(int *x,int a,int c)
{
  int y=0;
  for(int l=a;l<=(a+c-1);l++){
    y+=(int)(pow(10,c-1))*x[l];
    c--;
  }
  return y;
}
void main(void)
{
  
  int N=0,ans=0;
  //scanf("%d",&N);
  char str[n];
  scanf("%s",str);
  int i=0;
  while(str[i]!='\0'){
    i++;
    N++;
  }
  int str_int[N+1],tmp=0;
  str_int[0]=atol(str);
  for(int j=1;j<=N;j++){
    str_int[j]=(str_int[0]-tmp)/(int)(pow(10,N-j));
    tmp+=str_int[j]*(int)(pow(10,N-j));
  }
  //tmp=cal(str_int,1,4,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++;
      }
    }
  }
  
      
  printf("%d",ans);


}