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
//題意：たぶんSにK文字挿入した文字列何通り？だと思うなあ。
//スターリング数知ってますか？僕は調べて思い出しました。
//文字種類数をCとして、C = 26じゃなくてC = 10^hoge + 1の場合を試すと「ははーん」ってなる。
#include <iostream>
#include <string>
#define int long long
using namespace std;

int powmod(int a, int n, int mod) {
	if (n == 0) return 1;
	if (n % 2 == 0) return powmod((a * a) % mod, n / 2, mod);
	return (a * powmod(a, n - 1, mod)) % mod;
}

int mod = 1000000007;
int K;
string s;
int fact[2000001];
int finv[2000001];

int comb(int n, int k) {
	return fact[n] * finv[k] % mod * finv[n - k] % mod;
}

signed main() {
	int i;
	
	cin >> K >> s;
	int n = K + s.length();
	
	fact[0] = finv[0] = 1;
	for (i = 1; i <= n; i++) {
		fact[i] = i * fact[i - 1] % mod;
		finv[i] = powmod(fact[i], mod - 2, mod);
	}
	
	int ans = 0;
	for (i = s.length(); i <= n; i++) {
		ans += comb(n, i) * powmod(25, n - i, mod) % mod;
		ans %= mod;
	}
	cout << ans << endl;
	return 0;
}