#include <bits/stdc++.h>
using namespace std;
int a[100005];
int main() {
string s; cin >> s;
int n = s.length(); s = " " + s;
map<int,map<int,int>> mp;
for (int i=1; i<=n; i++) {
a[i] = a[i-1] + (s[i]-'0');
}
for (int i=n; i>=1; i--) {
for (int j=0; j<3; j++) mp[i][j] = mp[i+1][j];
mp[i][a[i] % 3]++;
}
int cnt = (a[n]%3==0) - 1;
for (int L=1; L<=n; L++) {
cnt += mp[L][(a[n] + a[L-1]) % 3];
}
cout << cnt;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBhWzEwMDAwNV07CmludCBtYWluKCkgewogICAgc3RyaW5nIHM7IGNpbiA+PiBzOwogICAgaW50IG4gPSBzLmxlbmd0aCgpOyBzID0gIiAiICsgczsKICAgIG1hcDxpbnQsbWFwPGludCxpbnQ+PiBtcDsKICAgIGZvciAoaW50IGk9MTsgaTw9bjsgaSsrKSB7CiAgICAgICAgYVtpXSA9IGFbaS0xXSArIChzW2ldLScwJyk7CiAgICB9CiAgICBmb3IgKGludCBpPW47IGk+PTE7IGktLSkgewogICAgICAgIGZvciAoaW50IGo9MDsgajwzOyBqKyspIG1wW2ldW2pdID0gbXBbaSsxXVtqXTsKICAgICAgICBtcFtpXVthW2ldICUgM10rKzsKICAgIH0KICAgIGludCBjbnQgPSAoYVtuXSUzPT0wKSAtIDE7CiAgICBmb3IgKGludCBMPTE7IEw8PW47IEwrKykgewogICAgICAgIGNudCArPSBtcFtMXVsoYVtuXSArIGFbTC0xXSkgJSAzXTsKICAgIH0KICAgIGNvdXQgPDwgY250Owp9