import sys def main(): input = sys.stdin.read().split() ptr = 0 N = int(input[ptr]); ptr += 1 S = int(input[ptr]); ptr += 1 X = int(input[ptr]); ptr += 1 Y = int(input[ptr]); ptr += 1 Z = int(input[ptr]); ptr += 1 # Initialize parity array parity = [0] * N current = S parity[0] = current % 2 for i in range(1, N): current = (X * current + Y) % Z parity[i] = current % 2 Q = int(input[ptr]); ptr += 1 for _ in range(Q): S_k = int(input[ptr]) - 1; ptr += 1 # Convert to 0-based T_k = int(input[ptr]) - 1; ptr += 1 U_k = int(input[ptr]) - 1; ptr += 1 V_k = int(input[ptr]) - 1; ptr += 1 # Calculate length of the segment L = T_k - S_k copy_len = L + 1 copy = parity[S_k : S_k + copy_len] # Apply to destination dest_start = U_k for i in range(copy_len): pos = dest_start + i if pos >= N: break parity[pos] ^= copy[i] # Convert parity to 'E' and 'O' result = ['E' if p == 0 else 'O' for p in parity] print(''.join(result)) if __name__ == '__main__': main()