import sys from collections import defaultdict def main(): MOD = 10**6 + 3 # Read S_alpha S_alpha = list(map(int, sys.stdin.readline().split())) # Read T T = sys.stdin.readline().strip() # Compute runs of T if not T: print(0) return runs = [] prev = T[0] runs.append(prev) for c in T[1:]: if c != prev: runs.append(c) prev = c # Compute m_c for each character m_c = defaultdict(int) for c in runs: m_c[c] += 1 # Check if any character's run count exceeds S_alpha valid = True for c in m_c: idx = ord(c) - ord('a') if m_c[c] > S_alpha[idx]: valid = False break if not valid: print(0) return # Precompute q and rem for each character run_info = defaultdict(lambda: {'q': 0, 'rem': 0, 'current': 0}) for c in m_c: idx = ord(c) - ord('a') s = S_alpha[idx] m = m_c[c] q = s // m rem = s % m run_info[c]['q'] = q run_info[c]['rem'] = rem # Calculate the product product = 1 for c in runs: info = run_info[c] if info['current'] < info['rem']: s_i = info['q'] + 1 info['current'] += 1 else: s_i = info['q'] product = (product * s_i) % MOD print(product % MOD) if __name__ == '__main__': main()