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 PHP (5.6.30) (judge verdict: Wrong Answer)

<?php
$s = str_split(trim(fgets(STDIN)));
$ns = count($s);
$ans = ceil($ns / 2);
$c = array_count_values($s);
$nc = count($c);
if($nc == 1){
echo 0;
}elseif($ns == $nc){
echo $ans;
}else{
arsort($c);
foreach($c as $key => $val){
if($val == 1){
break;
}else{
$i = 0;
while($val > 0){
if($s[$i] == $key){
$a[] = $i;
--$val;
}
++$i;
}
$a[] = $ns - 1;
$p = 0;
foreach($a as $val){
$d[] = $val - $p;
$p = $val;
}
$ans2 = max($d) - 1;
$ans = min($ans,$ans2);
unset($a);
unset($d);
}
}
echo $ans;
}