How many strings can be obtained by applying the following operation on a string S exactly K times: "choose one lowercase English letter and insert it somewhere"?

The answer can be enormous, so print it modulo (10^9+7).

Constraints

* K is an integer between 1 and 10^6 (inclusive).
* S is a string of length between 1 and 10^6 (inclusive) consisting of lowercase English letters.

Input

Input is given from Standard Input in the following format:


K
S


Output

Print the number of strings satisfying the condition, modulo (10^9+7).

Examples

Input

5
oof


Output

575111451


Input

37564
whydidyoudesertme


Output

318008117
import java.util.*;
 
public class Main {
	Scanner sc = new Scanner(System.in);
	final int MOD = (int)1e9 + 7;
	final int MAX = Integer.MAX_VALUE;
	final long LMAX = Long.MAX_VALUE;
	int len = (int)1e7;
	
	
	long[] fac, finv, inv;
	void doIt() {
		comInit();
		int K = sc.nextInt();
		String S = sc.next();
		int N = S.length();
		long ans = 0l;
		for(int i = N - 1; i < K + N; i++) {
			int afterSn = K + N - 1 - i;
			long num = (modPow(25, K - afterSn) * modPow(26, afterSn)) % MOD;
			num = (num * modCom(N + K - afterSn - 1, N - 1)) % MOD;
			ans = (ans + num) % MOD;
		}
		System.out.println(ans);
	}
	
	long modPow(long a, long n) {
		long ans = 1;
		while(n > 0) {
			if((n & 1) == 1)
				ans = ans * a % MOD;
			a = a * a % MOD;
			n >>= 1;
		}
		return ans;
	}
	
	void comInit() {
		fac = new long[len];
		finv = new long[len];
		inv = new long[len];
		fac[0] = fac[1] = 1;
	    finv[0] = finv[1] = 1;
	    inv[1] = 1;
	    for (int i = 2; i < len; i++){
	        fac[i] = fac[i - 1] * i % MOD;
	        inv[i] = MOD - inv[MOD % i] * (MOD / i) % MOD;
	        finv[i] = finv[i - 1] * inv[i] % MOD;
	    }
	}
	
	long modCom(int n, int k){
	    if (n < k) return 0;
	    if (n < 0 || k < 0) return 0;
	    return fac[n] * (finv[k] * finv[n - k] % MOD) % MOD;
	}
	
	public static void main(String[] args) {
		new Main().doIt();
	}
 
}