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