using
System;
using
System.Collections.Generic;
class
Program
{
const
int
MOD = 1000000007;
static
long
CountOfArr(
int
idx,
int
bitmask,
string
S,
int
N,
int
M,
long
[,] dp)
{
if
(idx == N)
{
return
bitmask == ((1 << M) - 1) ? 1 : 0;
}
if
(dp[idx, bitmask] != -1)
return
dp[idx, bitmask];
long
ans = 0;
for
(
int
i = 0; i < M; i++)
{
ans += CountOfArr(idx + 1, bitmask | (1 << i), S, N, M, dp);
ans %= MOD;
}
ans += ((26 - M) * CountOfArr(idx + 1, bitmask, S, N, M, dp)) % MOD;
return
dp[idx, bitmask] = ans;
}
static
void
Main()
{
int
N = 4, M = 3;
string
S =
"abc"
;
long
[,] dp =
new
long
[N + 1, 1 << M];
for
(
int
i = 0; i <= N; i++)
{
for
(
int
j = 0; j < 1 << M; j++)
{
dp[i, j] = -1;
}
}
int
bitmask = 0;
Console.WriteLine(CountOfArr(0, bitmask, S, N, M, dp));
}
}