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
#include<bits/stdc++.h>
//#define int long long 
#define ll long long
#define fi first
#define vi vector<int>
#define pii pair<int,int>
#define se second
using namespace std;
int t,a,b,c,x,y,k,n,q;
int F[2000006];
string s;
const int mod = 1e9+7;
int pw(int a,int n) {
	int y = 1;
	for (; n ; n/=2) {
		if (n&1) y = 1ll*y*a%mod;
		a = 1ll*a*a%mod;
	}
	return y;
}
int inv(int n) {
return pw(n,mod-2);
}

int C(int a,int b){
	if (a < b || a == 0) return 0;
	return (1ll*F[a]*pw(F[b],mod-2)%mod)*pw(F[a-b],mod-2)%mod;
}

void factorial () {
	F[0] = 1;
	for (int i = 1; i < 2000003; i++)
		F[i] = 1ll*F[i-1]*i%mod; 
}

ll ans;
int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
	factorial();
	cin >> k >> s;
	int m = s.size();
	int n = k + s.size();
	int ans = 0;
	for (int i = m; i <= n; i++) {
		ans = (ans + 1ll*C(n,i)*pw(25,n-i)%mod)%mod;
//		cout << ans <<' ';
	}
	cout << ans;
	
	
}