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 Java8 (OpenJDK 1.8.0) (judge verdict: Accepted)

import java.util.*;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    String s = sc.next();
    int ans = 1000;
    boolean f = false;
    for(int i = 0; i < s.length(); i++) {
      if(s.charAt(i) != s.charAt(0)) f = true;
    }
    if(f) {
    for(int i = 0; i < s.length(); i++) {
      char cha = s.charAt(i);
      boolean flg = true;
      String test = s;
      int count = 0;
      while(flg) {
        count++;
        String temp = "";
        for(int j = 0; j < test.length() - 1; j++) {
          if(test.charAt(j) == cha || test.charAt(j + 1) == cha) {
            temp += String.valueOf(cha);
          } else {
            temp += String.valueOf(test.charAt(j));
          }
        }
        test = temp;
        int c = 0;
        for(int j = 0; j < temp.length(); j++) {
          if(temp.charAt(j) != cha) c++;
        }
        if(c == 0) flg = false;
      }
      ans = Math.min(ans, count);
    }
    } else {
      ans = 0;
    }
    System.out.println(ans);
  }
}