#include <bits/stdc++.h>

using namespace std;

map<char, pair<int, int>> lista;
long long res;

void jeste(string a) {
    int duzina = a.length(), brojac;
    for(int i = 0; i < duzina; i++) {
        if(lista[a[i]].first == 0) {
            lista[a[i]].second = i;
            lista[a[i]].first++;
        }
        else {
            brojac = 0;
            while(a[i] == a[i + brojac] && i + brojac != duzina - 1) brojac++;
            i += brojac;
            res += min(brojac, min(lista[a[i]].first, i - lista[a[i]].second + lista[a[i]].first + 1));
            if(min(brojac, min(lista[a[i]].first, i - lista[a[i]].second + lista[a[i]].first + 1)) == brojac) {
                lista[a[i]].first = brojac;
                lista[a[i]].second = i - brojac;
            }
            if(brojac > 1) i += brojac;
        }
    }
    cout << res << endl;
}

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);

    string broj;
    cin >> broj;
    jeste(broj);

    return 0;
}