Одне з головних нововведень найновішої операційної системи Indows 7 - новий менеджер пам'яті. Він працює з масивом довжиною і дозволяє виконувати три найсучасніші операції:
copy(, , ) - скопіювати відрізок [a, a+l-1] в [b, b+l-1];
sum(, ) - порахувати суму елементів масиву на відрізку [l, r];
print(, ) - надрукувати елементи з по , включно.
Ви є розробником своєї операційної системи, і Ви, безумовно, не можете обійтись без інноваційних технологій. Вам необхідно реалізувати точно такий самий менеджер пам'яті.
Перший рядок вхідного файлу містить ціле число (1 \leq N \leq 1000000) - розмір масиву, з яким буде працювати Ваш менеджер пам'яті.
У другому рядку містяться чотири числа 1 \leq X_1, A, B, M \leq 10^9+10. З їх допомогою можна згенерувати початковий масив чисел X_1, X_2, \dots, X_N. X_{i+1} = (A \cdot X_i + B) \bmod M.
Наступний рядок вхідного файлу містить ціле число (1 \leq K \leq 200000) - кількість запитів, які необхідно виконати Вашому менеджеру пам'яті.
Далі у рядках містяться описи запитів. Запити задано у форматі:
cpy - для операції copy;
sum - для операції sum (l \leq r);
out - для операції print (l \leq r).
Гарантується, що сумарна довжина запитів print не перевищує . Також гарантується, що усі запити коректні.
Для кожного запиту sum або print виведіть у вихідний файл у окремому рядку результат запиту.
Приклад 1