#include<bits/stdc++.h>
using namespace std;
int main()
{
    string str;
    cin >> str;
    int n = str.length() - 1;
    char ch = ' ';
    long long ans = 0;
    for (int i = 0; i <=n; i++)
    {
        if (i !=n &&str[i]!=ch&& str[i] == str[i + 1] && str[i] != str[i + 2])
        {
            ans += n - i -1;
            ch = str[i];
            i++;
        }
        else if (ch == str[i])
        {
            ans--;
        }

    }
    cout << ans << "\n";
    return 0;
}
#include <algorithm>
#include <cstdio>
#include <functional>
#include <iostream>
#include <cfloat>
#include <climits>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <map>
#include <unordered_map>
#include <unordered_set>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <time.h>
#include <complex>
#include <vector>
#include <limits>
#include <iomanip>
#include <cassert>
#include <numeric>
#include <chrono>
#include <random>

using namespace std;

typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;

#define debug(x) cerr << #x << " = " << (x) << endl;
#define debug_pii(x) cerr << "(" << x.first << "," << x.second << ")";
#define rep(i, n) for(int i = 0;i < n;i++)
#define pb push_back
#define F first
#define S second

// template<typename _Ty1, typename _Ty2>
// ostream& operator<<(ostream& _os, const pair<_Ty1, _Ty2>& _p) {
//     _os << '(' <<_p.first << ',' << _p.second << ')';
//     return _os;
// }
//
// template<typename _Ty1, typename _Ty2>
// istream& operator>>(istream& _is, pair<_Ty1, _Ty2>& _p) {
//     _is >> _p.first >> _p.second;
//     return _is;
// }

void solve() {
  string s;
  cin>>s;
  int n = s.size();
  vector<int> F(26);
  int i = n-3, j = n-2, k = n-1;
  ll ans = 0;
  while (i >= 0) {
    if(s[i] == s[j] && s[j] != s[k]) {
      ans += n-k-1-F[s[i]-'a']+1;
      F.assign(26,0);
      F[s[i]-'a']= n-1-j;
    } else {
      F[s[k]-'a']++;
    }
    i--;j--;k--;
  }
  cout<<ans<<endl;
}

// 0123....i=j!=k......n-1


//         aababbbbb
//         aaaabbbbb
//         aaaaabbbb


// d+1, d+2, d+3, ...,  d'    ,... , M
// 0 [1]
// 1 [1]
// 2 [2,4,8,6,2]
// 3 [3,9,7,1,3]
// 4 [4,6,4]
// 5 [1]
// 6 [1]
// 7 [7,9,3,1,7]
// 8 [8,4,2,6,8]
// 9 [9,1,9]


int main() {

 // freopen("input.in","r",stdin);
 // freopen("output.out","w",stdout);
 // cout << fixed << setprecision(15);2000000000

 ios_base::sync_with_stdio(false);
 cin.tie(nullptr);
 // prime_factors();
 int t = 1;
 // cin >> t;
 while (t--) {
   solve();
 }

 return 0;
}
