MOD = 10**9 + 7 def main(): import sys input = sys.stdin.read data = input().split() idx = 0 p = int(data[idx]); idx +=1 n = int(data[idx]); idx +=1 k = int(data[idx]); idx +=1 b = int(data[idx]); idx +=1 a = list(map(int, data[idx:idx+n])) if p == 1: print(1 if b == 0 else 0) return r = k % (p-1) if p != 2 else 0 dp = [0] * p dp[0] = 1 for ai in a: if ai == 0: for j in range(p): dp[j] = (dp[j] * p) % MOD continue cnt = {} if r == 0: cnt[0] = 1 ai_mod = ai % p if ai_mod in cnt: cnt[ai_mod] += (p-1) else: cnt[ai_mod] = p-1 else: cnt = {} for xi in range(p): if xi == 0: vi = 0 else: xi_mod = pow(xi, r, p) vi = (ai * xi_mod) % p if vi in cnt: cnt[vi] += 1 else: cnt[vi] = 1 new_dp = [0] * p for j in range(p): for v in cnt: prev = (j - v) % p new_dp[j] = (new_dp[j] + dp[prev] * cnt[v]) % MOD dp = new_dp print(dp[b] % MOD) if __name__ == '__main__': main()