# -*- coding: utf-8 -*-



K = int(eval(input()))

S = len(eval(input()))



mod = 10**9+7

answer = 0

tmp = 0



# 組み合わせの数の計算は以下URLからコピーしてきた：

# https://qiita.com/derodero24/items/91b6468e66923a87f39f

def cmb(n, r, mod):

    if ( r<0 or r>n ):

        return 0

    r = min(r, n-r)

    return g1[n] * g2[r] * g2[n-r] % mod



N = K+S

g1 = [1, 1] # 元テーブル

g2 = [1, 1] #逆元テーブル

inverse = [0, 1] #逆元テーブル計算用テーブル



for i in range( 2, N + 1 ):

    g1.append( ( g1[-1] * i ) % mod )

    inverse.append( ( -inverse[mod % i] * (mod//i) ) % mod )

    g2.append( (g2[-1] * inverse[-1]) % mod )



pow = -1

for i in range(K+1):

  if pow == -1:

    pow = 1

  else:

    pow = (pow*25)%mod

  answer = (answer+pow*cmb(N,i,mod))%mod



print(answer)
# -*- coding: utf-8 -*-



K = int(eval(input()))

S = len(eval(input()))



mod = 10**9+7

N = K+S



# mod上の逆元の計算

inverse = [0, 1]

for i in range(2, N+1):

    inverse.append((-inverse[mod%i]*(mod//i))%mod)



# 階乗とその逆元の計算

factorial = [1, 1]

factorial_inv = [1, 1]

for i in range(2, N+1):

    factorial.append((factorial[-1]*i)%mod)

    factorial_inv.append((factorial_inv[-1]*inverse[i])%mod)



answer = 0

pow = -1

for i in range(K+1):

    if pow == -1:

        pow = 1

    else:

        pow = (pow*25)%mod

    answer = (answer+pow*factorial[N]*factorial_inv[i]*factorial_inv[N-i])%mod

print(answer)
# -*- coding: utf-8 -*-
K = int(eval(input()))
S = len(eval(input()))
mod = 10**9 + 7
answer = 0
tmp = 0
# 組み合わせの数の計算は以下URLからコピーしてきた：
# https://qiita.com/derodero24/items/91b6468e66923a87f39f
def cmb(n, r, mod):
    if r < 0 or r > n:
        return 0
    r = min(r, n - r)
    return g1[n] * g2[r] * g2[n - r] % mod


N = K + S
g1 = [1, 1]  # 元テーブル
g2 = [1, 1]  # 逆元テーブル
inverse = [0, 1]  # 逆元テーブル計算用テーブル
for i in range(2, N + 1):
    g1.append((g1[-1] * i) % mod)
    inverse.append((-inverse[mod % i] * (mod // i)) % mod)
    g2.append((g2[-1] * inverse[-1]) % mod)
pow = -1
for i in range(K + 1):
    if pow == -1:
        pow = 1
    else:
        pow = (pow * 25) % mod
    answer = (answer + pow * cmb(N, i, mod)) % mod
print(answer)

# -*- coding: utf-8 -*-
K = int(eval(input()))
S = len(eval(input()))
mod = 10**9 + 7
N = K + S
# mod上の逆元の計算
inverse = [0, 1]
for i in range(2, N + 1):
    inverse.append((-inverse[mod % i] * (mod // i)) % mod)
# 階乗とその逆元の計算
factorial = [1, 1]
factorial_inv = [1, 1]
for i in range(2, N + 1):
    factorial.append((factorial[-1] * i) % mod)
    factorial_inv.append((factorial_inv[-1] * inverse[i]) % mod)
answer = 0
pow = -1
for i in range(K + 1):
    if pow == -1:
        pow = 1
    else:
        pow = (pow * 25) % mod
    answer = (
        answer + pow * factorial[N] * factorial_inv[i] * factorial_inv[N - i]
    ) % mod
print(answer)

+N = K + S +# mod上の逆元の計算 +inverse = [0, 1] +for i in range(2, N + 1): +    inverse.append((-inverse[mod % i] * (mod // i)) % mod) +# 階乗とその逆元の計算 +factorial = [1, 1] +factorial_inv = [1, 1] +for i in range(2, N + 1): +    factorial.append((factorial[-1] * i) % mod) +    factorial_inv.append((factorial_inv[-1] * inverse[i]) % mod) -tmp = 0 -# 組み合わせの数の計算は以下URLからコピーしてきた： -# https://qiita.com/derodero24/items/91b6468e66923a87f39f -def cmb(n, r, mod): -    if r < 0 or r > n: -        return 0 -    r = min(r, n - r) -    return g1[n] * g2[r] * g2[n - r] % mod - - -N = K + S -g1 = [1, 1]  # 元テーブル -g2 = [1, 1]  # 逆元テーブル -inverse = [0, 1]  # 逆元テーブル計算用テーブル -for i in range(2, N + 1): -    g1.append((g1[-1] * i) % mod) -    inverse.append((-inverse[mod % i] * (mod // i)) % mod) -    g2.append((g2[-1] * inverse[-1]) % mod) -    answer = (answer + pow * cmb(N, i, mod)) % mod +    answer = ( +        answer + pow * factorial[N] * factorial_inv[i] * factorial_inv[N - i] +    ) % mod