Junoh Is a Grump!!

Count how many distinct strings can be made from a given name by shifting distinct positions total s, each shift 1 to 25.

Medium7CombinatoricsDynamic programmingMathNo attempts yetTime limit1sMemory limit256 MB

Problem

A contest was delayed because of a mistake in uploading the problems. It was not really an upload mistake, though. It was the work of Junoh Lim, a grumpy hacker who lives in Dongtan! Wookje would not show Junoh a funny picture, so Junoh got grumpy and tried to wreck Wookje's contest.

Junoh encrypted the problem names so that the judge server cannot find the problems. A problem name consists of lowercase letters only. The encryption works as follows.

  1. Junoh picks any letter of the problem name and shifts it by kk (1k251 \le k \le 25). For example, shifting a by 3 gives d, and shifting z by 1 gives a.
  2. Each time Junoh changes a letter, he picks kk again.
  3. He keeps changing letters until the sum of the values of kk is ss. A letter that has already been changed is never changed again.

Wookje wants to prepare a rainbow table so that he can quickly recover encrypted problems later, even without knowing the original names. Given the original name of a problem, find the number of distinct names it can turn into and tell Wookje!

Input

The first line contains ss (1s30001 \le s \le 3\,000). The second line contains the problem name, made of lowercase letters, whose length LL satisfies 1L30001 \le L \le 3\,000. The problem name contains no spaces. No impossible input is given, such as one with 25L<s25L < s.

Output

Print the number of possible encrypted problem names modulo 10000000071\,000\,000\,007.

Hint

In the first example, changing ab by a total of 2 gives ad, bc, and cb, so there are 3 ways.

In the second example, changing hanjo by a total of 2 gives janjo, hcnjo, hapjo, hanlo, hanjq, ibnjo, iaojo, ianko, …, haojp, and hankp, so there are 15 ways.