#include <bits/stdc++.h>
using namespace std;

int main(){
  string S; cin >> S;
  int N=S.size();
  
  // 2019 = 3 * 673(prime)
  // 673の倍数判定で組をためる
  int cur=0;
  int d=1;
  vector<vector<int>> q(673,vector<int>());
  q[0].push_back(N);
  for(int i=N-1; i>=0; i--){
    cur=(cur+d*(S[i]-'0'))%673;
    q[cur].push_back(i);
    d=(d*10)%673;
  }
  
  // 3の倍数判定をためた組に行う
  int th[200010];
  th[N]=th[N+1]=0;
  for(int i=N-1; i>=0; i--){
    th[i]=th[i+1]+(S[i]-'0');
  }
  
  long long count=0;
  for(int i=0; i<673; i++){
    for(int j=0; j<(int)q[i].size(); j++){
      for(int k=j+1; k<(int)q[i].size(); k++){
        if((th[q[i][k]]-th[q[i][j]])%3==0) count++;
      }
    }
  }
  cout << count << endl;
}