import kotlin.math.max

fun main() {
    val builder = StringBuilder()

    val mod = 1000000007L

    val k = readInputLine().toInt()
    val s = readInputLine().toCharArray()
    val n = k + s.size + 10

    // 1～nの階乗、逆元
    val factorial = LongArray(n + 1)
    val inverse = LongArray(n + 1)
    val factorialInverse = LongArray(n + 1)
    factorial[0] = 1L
    factorial[1] = 1L
    inverse[0] = 1L
    inverse[1] = 1L
    factorialInverse[0] = 1L
    factorialInverse[1] = 1L
    for (i in 2..n) {
        factorial[i] = (factorial[i - 1] * i.toLong() % mod)
        inverse[i] = (mod - inverse[mod.toInt() % i] * (mod / i.toLong()) % mod)
        factorialInverse[i] = (factorialInverse[i - 1] * inverse[i] % mod)
    }

    fun nCm(n: Int, m: Int): Long {
        return factorial[n] * (factorialInverse[m] * factorialInverse[n - m] % mod) % mod
    }

    fun nHm(n: Int, m: Int): Long {
        return nCm(n + m - 1, m)
    }

    val pow25 = LongArray(n)
    val pow26 = LongArray(n)

    pow25[0] = 1L
    pow26[0] = 1L

    for (i in 1 until n) {
        pow25[i] = pow25[i - 1] * 25L % mod
        pow26[i] = pow26[i - 1] * 26L % mod
    }

    var ans = 0L

    for (i in 0..k) {
        ans = (ans + pow25[i] * pow26[k - i] % mod * nHm(s.size, i) % mod) % mod
    }

    builder.appendln(ans)

    print(builder.toString())
}

fun readInputLine(): String {
    return readLine()!!
}
