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

namespace Zadatak4
{
    class Program
    {
        static string [] nizBrojeva(bool[] mesta, string[] nizBroj, long[] brPonavljanja, long[] brMestaIzmedju,int j)
        {
            bool prvoponavljanje = false;
            long brojac = 0;
            for (long i = j; i < 10; i++)
            {
                if(mesta[i])
                {
                    for (long k = 0; k < nizBroj.Length; k++)
                    {
                        if (!prvoponavljanje && long.Parse(nizBroj[j]) == i)
                        {
                            prvoponavljanje = true;
                            brojac++;
                        }
                        else if (long.Parse(nizBroj[j]) != i && brojac < brPonavljanja[i] && prvoponavljanje)
                        {
                            nizBroj[j] = i.ToString();
                        }
                        else if (long.Parse(nizBroj[j]) == i)
                        {
                            brojac++;
                        }
                        else break;
                    }
                }
            }
            return nizBroj;
        }
        static long [] BrojPonavljanja(bool[] mesta, string[] nizBroj, long[] brPonavljanja, long[] brMestaIzmedju)
        {
            brMestaIzmedju = new long[10];
            long duz = nizBroj.Length;
            long brojac = 0;
            bool prvoponavljanje = false;
            int indeks;
            for (long i = 0; i < duz; i++)
            {
                indeks = int.Parse(nizBroj[i]);
                brPonavljanja[indeks]++;
                if (brPonavljanja[indeks] == 2)
                    mesta[indeks] = true;
            }
            for (long i = 0; i < duz; i++)
            {
                if (mesta[i])
                {
                    for (long j = 0; j < duz; j++)
                    {
                        if (!prvoponavljanje && long.Parse(nizBroj[j]) == i)
                        {
                            prvoponavljanje = true;
                            brojac++;
                        }
                        else if (long.Parse(nizBroj[j]) != i && brojac < brPonavljanja[i] && prvoponavljanje)
                        {
                            brMestaIzmedju[i]++;
                        }
                        else if (long.Parse(nizBroj[j]) == i)
                        {
                            brojac++;
                        }
                    }
                    prvoponavljanje = false;
                    brojac = 0;
                }
            }
            return brMestaIzmedju;
        }
        static void Main(string[] args)
        {
            string broj = Console.ReadLine();
            string[] nizBroj = new string[broj.Length];
            for (int i = 0; i < broj.Length; i++)
            {
                nizBroj[i] = broj[i].ToString();
            }
            long duz = nizBroj.Length;
            int indeks;
            long[] brPonavljanja = new long[10];
            long[] brMestaIzmedju = new long[10];
            bool[] mesta = new bool[10];
            for (int i = 0; i < duz; i++)
            {
                indeks = int.Parse(nizBroj[i]);
                brPonavljanja[indeks]++;
                if (brPonavljanja[indeks] == 2)
                    mesta[indeks] = true;
            }
            brMestaIzmedju = BrojPonavljanja(mesta, nizBroj, brPonavljanja, brMestaIzmedju);
            long max = brMestaIzmedju.Max();
            long max1 = max;
            for (int i = 0; i < 10; i++)
            {
                brMestaIzmedju = BrojPonavljanja(mesta, nizBrojeva(mesta, nizBroj, brPonavljanja, brMestaIzmedju, i), brPonavljanja, brMestaIzmedju);
                max1 = Math.Min(brMestaIzmedju.Max(), max1);
                if (i == 9 && max1 < max)
                {
                    max = max1;
                    i = 0; 
                }
            }
            Console.WriteLine(max1);
        }
    }
}