-----Problem-----

			Once THANMAY met PK who is from a different planet visiting earth. THANMAY was very fascinate to learn PK's language. The language contains only lowercase English letters and is based on a simple logic that only certain characters can follow a particular character.


			Now he is interested in calculating the number of possible words of length L and ending at a particular character C. Help THANMAY to calculate this value. 

-----Input-----

			The input begins with 26 lines, each containing 26 space-separated integers. The integers can be either 0 or 1. The jth integer at ith line depicts whether jth English alphabet can follow ith English alphabet or not.


			 Next line contains an integer T. T is the number of queries.

			 Next T lines contains a character C and an integer L.

-----Output-----

			For each query output the count of words of length L ending with the character C. Answer to each query must be followed by newline character.


			The answer may be very large so print it modulo 1000000007.

-----Constraints-----
- 
					1 ≤ T ≤ 100
- 
C is lowercase English alphabet.

- 
					2 ≤ L ≤ 10000000
		

-----Sample Input-----
0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

2

c 3

b 2

-----Sample Output-----
1

2

-----Explanation-----

			For query 1, Words of length 3 are: aba, acb, bab, bac, cba. The only word ending with 'c' is bac.
		 p { text-align:justify }

Difficulty: interview

Starter code:

Solutions:
d = {}
for i in range(26):
 char = chr(i+ord('a'))
 d[char] = []
for i in range(26):
 char = chr(i+ord('a'))
 temp = list(map(int,input().strip().split()))
 for j in range(26):
  if (temp[j] == 1):
   follow= chr(j+ord('a'))
   d[follow].append(char)
   
def f(char,i,n,count):
 if (i==n):
  return count+1
 else:
  ans = 0
  for c in d[char]:
   ans+=f(c,i+1,n,0)
   ans%=(10**9+7)
  return ans

for q in range(int(input().strip())):
 c, n = input().strip().split()
 n = int(n)
 print(f(c,1,n,0))

d = {}
for i in range(26):
 char = chr(i+ord('a'))
 d[char] = []
for i in range(26):
 char = chr(i+ord('a'))
 temp = list(map(int,input().split()))
 for j in range(26):
  if (temp[j] == 1):
   follow= chr(j+ord('a'))
   d[follow].append(char)
   
def f(char,i,n,count):
 if (i==n):
  return count+1
 else:
  ans = 0
  for c in d[char]:
   ans+=f(c,i+1,n,0)
   ans%=(10**9+7)
  return ans

for q in range(int(input())):
 c, n = input().split()
 n = int(n)
 print(f(c,1,n,0))

d = {}
for i in range(26):
 char = chr(i+ord('a'))
 d[char] = []
for i in range(26):
 char = chr(i+ord('a'))
 temp = list(map(int,input().split()))
 for j in range(26):
  if (temp[j] == 1):
   follow= chr(j+ord('a'))
   d[follow].append(char)
   
def f(char,i,n,count):
 if (i==n):
  return count+1
 else:
  ans = 0
  for c in d[char]:
   ans+=f(c,i+1,n,0)
  return ans

for q in range(int(input())):
 c, n = input().split()
 n = int(n)
 print(f(c,1,n,0))