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.Scanner;

public class Main{
	static Scanner sc = new Scanner(System.in);
	static long mod = 1_000_000_007;
	public static void main(String[] args) {
		int k = sc.nextInt();
		int n = sc.next().length();
		int m = n + k;
		initComb();
		long ans = 0;
		for(int i=n;i<=m;i++) {
			ans += comb(m, i) * pow(25, m-i) % mod;
			ans %= mod;
		}
		System.out.println(ans);
	}
	static long fact[] = new long[2002002];
	static long revFact[] = new long[2002002];
	
	static void initComb() {
		fact[0] = 1;
		for(int i=1;i<2002002;i++) {
			fact[i] = fact[i-1] * i % mod;
		}
		revFact[2002001] = div(1, fact[2002001]); 
		for(int i=2002001;i>=1;i--) {
			revFact[i-1] = revFact[i] * i % mod;
		}
	}
	
	static long div(long x, long y) {
		return x * pow(y, mod - 2) % mod;
	}
	
	static long pow(long a, long x) {
		if(x == 0)return 1;
		if(x % 2 == 1) return a * pow(a, x-1) % mod;
		long root = pow(a, x / 2);
		return root * root % mod;
	}
	
	static long comb(int x, int y) {
		if( x < y )return 0;
		long up = fact[x];
		long down = fact[x - y] * fact[y] % mod;
		return div(up, down);
	}
}