def solve(): n, m, k = map(int, input().split()) s = list(map(int, input().split())) a = list(map(int, input().split())) b = list(map(int, input().split())) MOD = 998244353 total_f_sum = 0 def get_subsequences(arr): subs = [] for i in range(1 << len(arr)): sub = [] for j in range(len(arr)): if (i >> j) & 1: sub.append(arr[j]) if sub: subs.append(tuple(sub)) unique_subs = set() for sub in subs: unique_subs.add(sub) return list(unique_subs) subsequences = get_subsequences(s) for subsequence_tuple in subsequences: subsequence_list = list(subsequence_tuple) l = len(subsequence_list) f_t = 0 dp = [[0] * (k + 1) for _ in range(l + 1)] dp[0][0] = 1 for i in range(1, l + 1): card_type = subsequence_list[i-1] front_val = a[card_type-1] back_val = b[card_type-1] for j in range(k + 1): dp[i][j] = dp[i-1][j] # Don't flip card i if j >= back_val: dp[i][j] = (dp[i][j] + dp[i-1][j - back_val]) % MOD # Flip card i f_t = dp[l][k] total_f_sum = (total_f_sum + f_t) % MOD print(total_f_sum) solve()