MOD = 10**6 + 3 # Read input S_counts = list(map(int, input().split())) T = input().strip() # Create T_comp by removing consecutive duplicates prev_char = None T_comp = [] for c in T: if c != prev_char: T_comp.append(c) prev_char = c # Count occurrences of each character in T_comp from collections import defaultdict char_counts = defaultdict(int) for c in T_comp: char_counts[c] += 1 # Check if all characters in T_comp have sufficient counts in S result = 1 for char in char_counts: required = char_counts[char] available = S_counts[ord(char) - ord('a')] if available < required: print(0) exit() k = available - required base, remainder = divmod(k, required) # Calculate contribution (base+1)^(required - remainder) * (base+2)^remainder mod MOD part1 = pow(base + 1, required - remainder, MOD) part2 = pow(base + 2, remainder, MOD) contribution = (part1 * part2) % MOD result = (result * contribution) % MOD print(result)