import sys from collections import deque def main(): input = sys.stdin.read().split() idx = 0 N = int(input[idx]); idx += 1 K = int(input[idx]); idx += 1 seed = int(input[idx]); idx += 1 a = int(input[idx]); idx += 1 b = int(input[idx]); idx += 1 m = int(input[idx]); idx += 1 f = [0] * (2 * N) f[0] = seed for i in range(1, 2 * N): f[i] = (a * f[i-1] + b) % m W1 = [] W2 = [] W3 = [] for i in range(N): wi = (f[i] % 3) + 1 vi = wi * f[N + i] if wi == 1: W1.append(vi) elif wi == 2: W2.append(vi) else: W3.append(vi) W1.sort(reverse=True) W2.sort(reverse=True) W3.sort(reverse=True) q1 = deque(W1) q2 = deque(W2) q3 = deque(W3) total = 0 for _ in range(K): option1 = 0 if q3: option1 = q3[0] option2 = 0 if q2 and q1: option2 = q2[0] + q1[0] option3 = 0 if len(q1) >= 3: option3 = q1[0] + q1[1] + q1[2] option4 = 0 if q1: option4 = q1[0] max_val = max(option1, option2, option3, option4) if max_val == 0: break if max_val == option1: total += option1 q3.popleft() elif max_val == option2: total += option2 q2.popleft() q1.popleft() elif max_val == option3: total += option3 q1.popleft() q1.popleft() q1.popleft() elif max_val == option4: total += option4 q1.popleft() print(total) if __name__ == '__main__': main()