#include #include using namespace std; #define pb push_back #define fi first #define se second int lp[1000007]; char a[1000007]; int b[1000007]; long long int bb[27][1000007]; long long int fact[1000007]; long long int factm[1000007]; int prime() { long long int i,j; for(i=2;i<=1e6;i++) { if(lp[i]) continue; for(j=i*i;j<=1e6;j=j+i) if(!lp[j]) lp[j]=i; lp[i]=i; } return 0; } long long int exp(long long int a,long long int b) { long long int tem=1; while(b) { if(b%2) tem=(tem*a)%1000000007; a=(a*a)%1000000007; b=b/2; } return tem; } int main() { int i,j; fact[0]=1; factm[0]=1; for(i=1;i<=1e5;i++) fact[i]=(fact[i-1]*i)%1000000007,factm[i]=exp(fact[i],1000000005); scanf("%s",a+1); int aa; scanf("%d",&aa); for(i=1;a[i];i++) bb[a[i]-'a'][i]++; for(i=0;i<26;i++) for(j=1;a[j];j++) bb[i][j]=bb[i][j]+bb[i][j-1]; for(i=0;i