//字符串
//枚举+尺取法
#include <bits/stdc++.h>
using namespace std;
string s;
int sts[30];//统计字母个数
bool pd(int *sts)//判断统计字母是否满足26个
{
int i;
for(i=0;i<26;i++)
{
if(sts[i]==0) return false;
}
return true;
}
int main()
{
cin>>s;
int i,j,minn=s.size()+500,flag=0,p=0;//p为左指针
for(i=0;i<s.size();i++)//右指针移动
{
int flag=0;
sts[s[i]-'a']++;
while(pd(sts)&&p<i-26)//当字符串合法
{
flag=1;//标记合法,后面左指针可能要向后移动进行
minn=min(minn,i-p+1);//更新最短长度
if(minn==26) {cout<<minn<<endl;return 0;}//当长度为26时直接输出结束了
sts[s[p]-'a']--;//
p++;//左指针试着向右移动
}
if(flag)//左指针返回一位
{
p--;
sts[s[p]-'a']++;
}
}
cout<<minn<<endl;
}