Problem:
Score : 300 points

Problem Statement

Snuke can change a string t of length N into a string t' of length N - 1 under the following rule:

For each i (1 ≤ i ≤ N - 1), the i-th character of t' must be either the i-th or (i + 1)-th character of t.

There is a string s consisting of lowercase English letters.
Snuke's objective is to apply the above operation to s repeatedly so that all the characters in s are the same.
Find the minimum necessary number of operations.

Constraints

1 ≤ |s| ≤ 100

s consists of lowercase English letters.

Input

Input is given from Standard Input in the following format:

s

Output

Print the minimum necessary number of operations to achieve the objective.

Sample Input 1

serval

Sample Output 1

3

One solution is: serval → srvvl → svvv → vvv.

Sample Input 2

jackal

Sample Output 2

2

One solution is: jackal → aacaa → aaaa.

Sample Input 3

zzz

Sample Output 3

0

All the characters in s are the same from the beginning.

Sample Input 4

whbrjpjyhsrywlqjxdbrbaomnw

Sample Output 4

8

In 8 operations, he can change s to rrrrrrrrrrrrrrrrrr.

Solution in Java (OpenJDK 11.0.6) (judge verdict: Accepted)

import java.util.HashSet;
import java.util.Scanner;


	public class Main {
		
		

		public static void main(String[] args) {

			Scanner sc = new Scanner(System.in);
			
			char[] s = sc.next().toCharArray();
			HashSet<Character> m = new HashSet<Character>(); 
			
			for(int i=0;i<s.length;i++) {
				m.add(s[i]);
			}
			
			if(m.size()==1) {
				System.out.println(0);
				return;
			}
			
			int ret = Integer.MAX_VALUE ;
			
			
			for(Character c : m) {
				int n = s.length;
				int count = 0;
				char[] t = new char[n];
				for(int j=0;j<n;j++) {
					t[j] = s[j];
				}
				while(true) {
					
					HashSet<Character> set = new HashSet<Character>();
					for(int i=0;i<n-1;i++) {
						 
						if(t[i+1]==c) {
							t[i]=c;
						}
						set.add(t[i]);
					}
					count++;
					n--;
					if(set.size()==1) {
						break;
					}
					set.clear();
				}
				ret = Math.min(ret, count);
				
			}
			
			
			
			System.out.println(ret);
	    }
				
	}