typedeflonglong ll; constint inf = 0x3f3f3f3f; constint N = 1e6+10; constint mod = 1e9+7;
int fac[N << 1],invfac[N << 1]; intC(int n,int m) { return n < m ? 0 : (longlong)fac[n] * invfac[m] % mod * invfac[n - m] % mod; } voidinit() { // i最大值为数据量 fac[0]=invfac[0]=invfac[1]=1; for(int i=1;i<=2e6 + 10;i++)fac[i]=(longlong)fac[i-1]*i%mod; for(int i=2;i<=2e6 + 10;i++)invfac[i]=(longlong)(mod-mod/i)*invfac[mod%i]%mod; for(int i=2;i<=2e6 + 10;i++)invfac[i]=(longlong)invfac[i-1]*invfac[i]%mod; }
intqmi(int a,int b){ int res = 1; a %= mod; while(b){ if(b&1) res = res * a % mod; a = a*a%mod; b >>= 1; } return res; }
signedmain() { string s;cin>>s; int n;cin>>n; int res = 0; int len = s.size(); init(); for(int i = 1;i <= n-len+1;i++){ res = (res + qmi(26,i-1)*C(n-i,len-1)%mod*qmi(25,n-i-len+1))%mod; } cout << res << endl; return0; }