#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#define BUFSIZE 100

int a = 0;
char enter[BUFSIZE];
int count = 0;
long long sum = 0;
// 左から　small 桁目 左から　large桁目 small <= large  なる範囲で 2019の倍数に
// なっているか調べて　総和を出したい
// 入力 1111111123456789
//         <-----> 
//    small == 3 large == 9のとき
int cal(int small, int large, int len)
{
/*
  a++;
      if(a == 4) return 0;
*///small は　1づつ増える large は　small + 4 となる
    if (large - small < 3 || large > len) {
        return 0;
    }
    cal(small, large + 1, len);
    // まず (0,3) , (0,4) ... となる (0,max)となったら
    // (0 + 1, 3) をifで呼んで (1, 4) ... とする
    if (large == len) {
        cal(small + 1, small + 4, len);
    }
    /*
       if (large == strlen(enter)) {
       if (small == strlen(enter) - 4) {
       return 0;
       } else {
       cal(small + 1, small + 4);
       }
       }
     */

    sum = 0;
    for (int i = 0; i < BUFSIZE; i++) {
        //桁数分回す
        if (large - small - i == -1)
            break;
        //printf("small %d large %d i %d %c\n",small,large,i,enter[small + i]);
        sum +=
            (enter[small + i] - '0') * (long long) pow(10, large - small - i);
    }
    //printf(" %d %d %lld\n", small, large, sum);
    if (sum % 2019 == 0)
        count++;

    //printf("\n\n%lld\n\n",sum);
    /*
       cal(small, large + 1);
     */
}

int main(void)
{
    scanf("%s", enter);
    cal(0, 3, strlen(enter) - 1);
    printf("%d", count);
}
