import sys def main(): sys.setrecursionlimit(1 << 25) n = int(sys.stdin.readline()) strings = [sys.stdin.readline().strip() for _ in range(n)] base = 911382629 mod = 10**18 + 3 prefix_hashes = [] lengths = [] for s in strings: m = len(s) lengths.append(m) ph = [0] * (m + 1) for i in range(m): ph[i+1] = (ph[i] * base + ord(s[i])) % mod prefix_hashes.append(ph) M, x, d = map(int, sys.stdin.readline().split()) sum_lcp = 0 for _ in range(M): current_x = x div = n - 1 i = (current_x // div) + 1 j_remainder = current_x % div j = j_remainder + 1 if i > j: i, j = j, i else: j += 1 a = i - 1 b = j - 1 ph_a = prefix_hashes[a] ph_b = prefix_hashes[b] len_a = lengths[a] len_b = lengths[b] max_possible = min(len_a, len_b) low, high, res = 0, max_possible, 0 while low <= high: mid = (low + high) // 2 if ph_a[mid] == ph_b[mid]: res = mid low = mid + 1 else: high = mid - 1 sum_lcp += res x = (current_x + d) % (n * (n - 1)) print(sum_lcp) if __name__ == '__main__': main()