using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _D_Cvrsti_brojevi
{
    class Program
    {
        private const int V = 0;

        static void Main(string[] args)
        {

            string n;

            int trenutnaCifra,prethodnaCifra;
            prethodnaCifra = -1;
            n = Console.ReadLine();
            int zadnjiPrekid = -1;
            int cifraPrekida = -1;
            int[] duzinaPrekida = new int[10] {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};

            int[] ponavljanja = new int[10] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
            int[] pojava = new int[10] { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 };
            int[] prekinutOd = new int[10] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
            int[] prekinutDo = new int[10] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
            int trenutniNiz = 0;
            for (int i = 0; i < n.Length; i++)
            {
                trenutnaCifra = int.Parse(n[i].ToString());

                ponavljanja[trenutnaCifra]++;
                if(prethodnaCifra==trenutnaCifra)
                {
                    trenutniNiz++;
                }

                if(prethodnaCifra!=trenutnaCifra)// && trenutniNiz > 0)
                {
                    if(i+1 < n.Length)
                    {
                        var sledeci = int.Parse(n[i+1].ToString());
                        if(sledeci == prethodnaCifra)
                        {
                            trenutnaCifra = prethodnaCifra;
                            duzinaPrekida[trenutnaCifra] += 1;                            
                        }
                    }
                    if(i+1 == n.Length)
                    {
                        if(trenutniNiz > 0)
                        {
                            trenutnaCifra = prethodnaCifra;
                            duzinaPrekida[trenutnaCifra]++;
                        }
                    }
                }
                if (pojava[trenutnaCifra] >= 0 && (i - pojava[trenutnaCifra] > 1))//n[i] != n[i - 1] && ponavljanja[p] > 0)
                {
                    var trenutniPrekid = i - pojava[trenutnaCifra] - 1;
                    
                    duzinaPrekida[trenutnaCifra] += trenutniPrekid;
                    prekinutOd[trenutnaCifra] = pojava[trenutnaCifra];
                    prekinutDo[trenutnaCifra] = i;
                                                            
                    if (zadnjiPrekid > prekinutOd[trenutnaCifra] && duzinaPrekida[cifraPrekida] > trenutniPrekid && (cifraPrekida != trenutnaCifra && cifraPrekida != -1))
                    {                        
                        duzinaPrekida[cifraPrekida] -= (prekinutDo[cifraPrekida] - prekinutOd[cifraPrekida] - 1);
                    }
                    //resetuj prekid
                    else if(zadnjiPrekid > prekinutOd[trenutnaCifra] && duzinaPrekida[cifraPrekida] <= trenutniPrekid && (cifraPrekida != trenutnaCifra && cifraPrekida != -1))
                    {
                        duzinaPrekida[trenutnaCifra] -= (prekinutDo[trenutnaCifra] - prekinutOd[trenutnaCifra] - 1);
                    }
                    
                    //else
                    //{
                    //    for (int k = 0; k < 10; k++)
                    //    {
                    //        //pojava
                    //        if (pojava[k] >= prekinutOd[trenutnaCifra] && pojava[k] < prekinutDo[trenutnaCifra] && k != trenutnaCifra)
                    //        {
                    //            pojava[k] = -1;
                    //        }
                    //    }
                    //}                    
                    zadnjiPrekid = i;
                    cifraPrekida = trenutnaCifra;

                }
                if(prethodnaCifra!=trenutnaCifra)
                {
                    trenutniNiz = 0;
                }
                pojava[trenutnaCifra] = i;

                prethodnaCifra = trenutnaCifra;
            }

            Console.WriteLine(duzinaPrekida.Sum());
        }
    }
}