/**********************************************************************
File    .cpp
Author  Takahiro Yamazaki
**********************************************************************/
/**********************************************************************
Include Libraries
**********************************************************************/
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define repr(i, a, b) for (int i = a; i < b; i++)
#define each(i, mp) for(auto& i:mp)
/**********************************************************************
Declare variables
**********************************************************************/
/**********************************************************************
Declare instance
**********************************************************************/
/**********************************************************************
Proto_type_Declare functions
**********************************************************************/

/**********************************************************************
Main
**********************************************************************/
int main() {
  // string s;
  // cin >> s;
  // int ans = 0;
  // // int n = s.length();
  // // printf("%s\n", s);
  // // int n = stoi(s.c_str()) / 2019;
  // // int n = stol(s.c_str()) / 2019;
  // int n = 110;
  // // printf("%d\n", n);
  // for (int i = 1; i < n+1; i++) {
  //   int tmp = 2019 * i;
  //   if (s.find(std::to_string(tmp)) != s.npos) {
  //     ans++;
  //   }
  // }
  // printf("%d\n", ans);
  string s;
  cin >> s;
  map<ll, ll> mp;
  mp[0] = 1;
  reverse(s.begin(), s.end());
  ll now = 0, sum = 0, ten = 1;
  each(e, s) {
    // now = (now + (e - '0') * ten) % 2019;
    sum = sum + (e - '0') * ten;
    now = sum % 2019;
    ten *= 10;
    // ten %= 2019;
    mp[now]++;
    cout << ten << ' ' << now << '\n';
  }
  ll ans = 0;
  each(e, mp) {
    ans += e.second * (e.second - 1) / 2;
  }
  cout << ans << '\n';
  return 0;

}
/**********************************************************************
Functions
**********************************************************************/
