#include<stdio.h>
using namespace std;
 
int main(){
	char s[]={'t','b','c','a','c','b','d','a','t','a'};
	char t[]={'a','b','c','d'};
	int s_len=10,t_len=4;
	int res;
	
	if(s_len<t_len){
		res=-1;
		printf("%d",res);
		return 0;
	}
	//申请一个散列表,记录窗口中元素的情况 
	int hash[26]={0};
	for(int i=0;i<t_len;++i){
		++hash[t[i]-'a'];
	}
	
	int l=0,count=0;
	for(int r=0;r<s_len;++r){
		--hash[s[r]-'a'];
		if(hash[s[r]-'a']>=0){	//s[r]处的字符在t中 
			++count;
		}
		//向右移动左指针 
                if(r>t_len-1) {
                ++hash[s[l]-'a'];
                if (hash[s[l]-'a']>0) --count;
                ++l;
                }
                if(count==t_len && r-l+1==t_len){
			res=l;
			printf("%d",res);
			return 0;
		}
	}
	res=-1;//没有找到
	printf("%d",res);
	return 0;
}