using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {

            string a;
            int br;
            a = Console.ReadLine();
            br = 0;
            int poz01 = a.IndexOf("0");
            int poz02 = a.LastIndexOf("0");
            int poz11 = a.IndexOf("1");
            int poz12 = a.LastIndexOf("1");
            int poz21 = a.IndexOf("2");
            int poz22 = a.LastIndexOf("2");
            int poz31 = a.IndexOf("3");
            int poz32 = a.LastIndexOf("3");
            int poz41 = a.IndexOf("4");
            int poz42 = a.LastIndexOf("4");
            int poz51 = a.IndexOf("5");
            int poz52 = a.LastIndexOf("5");
            int poz61 = a.IndexOf("6");
            int poz62 = a.LastIndexOf("6");
            int poz71 = a.IndexOf("7");
            int poz72 = a.LastIndexOf("7");
            int poz81 = a.IndexOf("8");
            int poz82 = a.LastIndexOf("8");
            int poz91 = a.IndexOf("9");
            int poz92 = a.LastIndexOf("9");
            int br1 = 0;
            if (poz01 == poz02 && poz11 == poz12 && poz21 == poz22 && poz31 == poz32 && poz41 == poz42 && poz51 == poz52 && poz61 == poz62 && poz71 == poz72 && poz81 == poz82 && poz91 == poz92)
                Console.WriteLine("0");
            if (poz11 != poz12)
            {
                string s = a.Remove(0, poz11 + 1);
                poz12 = a.LastIndexOf("1");
                string s1 = s.Remove(poz12 - 1);
                int lenght = s1.Length;
                char[] arr = new char[lenght];




                for (int i = 0; i < s1.Length; i++)
                {
                    arr[i] = s1[i];
                }
                for (int i1 = 0; i1 < s1.Length; i1++)
                {
                    if (arr[0] == arr[i1])
                        br1++;
                }

                if (br1 > 2)
                    Console.WriteLine("1");
                else
                {
                    for (int i = 0; i < s1.Length; i++)
                    {
                        if (arr[i] != '1')
                            br++;
                    }
                    Console.WriteLine(br - 1);
                }
            }
            if (poz21 != poz22)
            {
                string s = a.Remove(0, poz21 + 1);
                poz22 = a.LastIndexOf("2");
                string s1 = s.Remove(poz22 - 1);
                int lenght = s1.Length;
                char[] arr = new char[lenght];
                for (int i = 0; i < s1.Length; i++)
                {
                    arr[i] = s1[i];
                }
                for (int i1 = 0; i1 < s1.Length; i1++)
                {
                    if (arr[0] == arr[i1])
                        br1++;
                }

                if (br1 > 2)
                    Console.WriteLine("1");
                else
                {
                    for (int i = 0; i < s1.Length; i++)
                    {
                        if (arr[i] != '1')
                            br++;
                    }
                    Console.WriteLine(br - 1);
                }
            }
            if (poz31 != poz32)
            {
                string s = a.Remove(0, poz31 + 1);
                poz32 = a.LastIndexOf("3");
                string s1 = s.Remove(poz32 - 1);
                int lenght = s1.Length;
                char[] arr = new char[lenght];
                for (int i = 0; i < s1.Length; i++)
                {
                    arr[i] = s1[i];
                }
                for (int i1 = 0; i1 < s1.Length; i1++)
                {
                    if (arr[0] == arr[i1])
                        br1++;
                }

                if (br1 > 2)
                    Console.WriteLine("1");
                else
                {
                    for (int i = 0; i < s1.Length; i++)
                    {
                        if (arr[i] != '1')
                            br++;
                    }
                    Console.WriteLine(br - 1);
                }
            }
            if (poz41 != poz42)
            {
                string s = a.Remove(0, poz41 + 1);
                poz42 = a.LastIndexOf("4");
                string s1 = s.Remove(poz42 - 1);
                int lenght = s1.Length;
                char[] arr = new char[lenght];
                for (int i = 0; i < s1.Length; i++)
                {
                    arr[i] = s1[i];
                }
                for (int i1 = 0; i1 < s1.Length; i1++)
                {
                    if (arr[0] == arr[i1])
                        br1++;
                }

                if (br1 > 2)
                    Console.WriteLine("1");
                else
                {
                    for (int i = 0; i < s1.Length; i++)
                    {
                        if (arr[i] != '1')
                            br++;
                    }
                    Console.WriteLine(br - 1);
                }
            }
            if (poz51 != poz52)
            {
                string s = a.Remove(0, poz51 + 1);
                poz52 = a.LastIndexOf("5");
                string s1 = s.Remove(poz52 - 1);
                int lenght = s1.Length;
                char[] arr = new char[lenght];
                for (int i = 0; i < s1.Length; i++)
                {
                    arr[i] = s1[i];
                }
                for (int i1 = 0; i1 < s1.Length; i1++)
                {
                    if (arr[0] == arr[i1])
                        br1++;
                }

                if (br1 > 2)
                    Console.WriteLine("1");
                else
                {
                    for (int i = 0; i < s1.Length; i++)
                    {
                        if (arr[i] != '1')
                            br++;
                    }
                    Console.WriteLine(br - 1);
                }
            }
            if (poz61 != poz62)
            {
                string s = a.Remove(0, poz61 + 1);
                poz62 = a.LastIndexOf("6");
                string s1 = s.Remove(poz62 - 1);
                int lenght = s1.Length;
                char[] arr = new char[lenght];
                for (int i = 0; i < s1.Length; i++)
                {
                    arr[i] = s1[i];
                }
                for (int i1 = 0; i1 < s1.Length; i1++)
                {
                    if (arr[0] == arr[i1])
                        br1++;
                }

                if (br1 > 2)
                    Console.WriteLine("1");
                else
                {
                    for (int i = 0; i < s1.Length; i++)
                    {
                        if (arr[i] != '1')
                            br++;
                    }
                    Console.WriteLine(br - 1);
                }
            }
            if (poz71 != poz72)
            {
                string s = a.Remove(0, poz71 + 1);
                poz72 = a.LastIndexOf("7");
                string s1 = s.Remove(poz72 - 1);
                int lenght = s1.Length;
                char[] arr = new char[lenght];
                for (int i = 0; i < s1.Length; i++)
                {
                    arr[i] = s1[i];
                }
                for (int i1 = 0; i1 < s1.Length; i1++)
                {
                    if (arr[0] == arr[i1])
                        br1++;
                }

                if (br1 > 2)
                    Console.WriteLine("1");
                else
                {
                    for (int i = 0; i < s1.Length; i++)
                    {
                        if (arr[i] != '1')
                            br++;
                    }
                    Console.WriteLine(br - 1);
                }
            }
            if (poz81 != poz82)
            {
                string s = a.Remove(0, poz81 + 1);
                poz82 = a.LastIndexOf("8");
                string s1 = s.Remove(poz82 - 1);
                int lenght = s1.Length;
                char[] arr = new char[lenght];
                for (int i = 0; i < s1.Length; i++)
                {
                    arr[i] = s1[i];
                }
                for (int i1 = 0; i1 < s1.Length; i1++)
                {
                    if (arr[0] == arr[i1])
                        br1++;
                }

                if (br1 > 2)
                    Console.WriteLine("1");
                else
                {
                    for (int i = 0; i < s1.Length; i++)
                    {
                        if (arr[i] != '1')
                            br++;
                    }
                    Console.WriteLine(br - 1);
                }
            }
            if (poz91 != poz92)
            {
                string s = a.Remove(0, poz91 + 1);
                poz92 = a.LastIndexOf("9");
                string s1 = s.Remove(poz92 - 1);
                int lenght = s1.Length;
                char[] arr = new char[lenght];
                for (int i = 0; i < s1.Length; i++)
                {
                    arr[i] = s1[i];
                }
                for (int i1 = 0; i1 < s1.Length; i1++)
                {
                    if (arr[0] == arr[i1])
                        br1++;
                }

                if (br1 > 2)
                    Console.WriteLine("1");
                else
                {
                    for (int i = 0; i < s1.Length; i++)
                    {
                        if (arr[i] != '1')
                            br++;
                    }
                    Console.WriteLine(br - 1);
                }
            }
        }
    }
}