typedef unsigned long long ull;
ull xp[maxn],hash1[maxn];
void init()
{
xp[0]=1;
for (int i=1; i<=maxn; i++)
{
xp[i]=xp[i-1]*175;
}
}
ull get_hash(int i,int l) //以i开始长度为l的字串
{
return hash1[i]-hash1[i+l]*xp[l];
}
scanf("%s",str);
int len=strlen(str);
for (int i=len-1; i>=0; i--)
{
hash1[i]=hash1[i+1]*175+str[i]-'a'+1;
}