Problems
Менеджер памяти
Менеджер памяти
Одно из главных нововведений новейшей операционной системы \textit{Indows 7} - новый менеджер памяти. Он работает с массивом длины \textbf{N} и позволяет выполнять три самые современные операции:
\begin{itemize}
\item \textbf{copy(a, b, l)} - скопировать отрезок длины \textbf{\[a},\textbf{ a+l-1\]} в \textbf{\[b},\textbf{ b+l-1\]};
\item \textbf{sum(l, r)} - посчитать сумму элементов массива на отрезке \textbf{\[l, r\]};
\item \textbf{print(l, r)} - напечатать элементы с \textbf{l} по \textbf{r}, включительно.
\end{itemize}
Вы являетесь разработчиком своей операционной системы, и Вы, безусловно, не можете обойтись без инновационных технологий. Вам необходимо реализовать точно такой же менеджер памяти.
\InputFile
Первая строка входного файла содержит целое число \textbf{N} (\textbf{1} ≤ \textbf{N} ≤ \textbf{1000000}) - размер массива, с которым будет работать Ваш менеджер памяти.
Во второй строке содержаться четыре числа \textbf{1} ≤ \textbf{X_1}, \textbf{A}, \textbf{B}, \textbf{M} ≤ \textbf{10^9+10}. С помощью них можно сгенерировать исходный массив чисел \textbf{X_1}, \textbf{X_2}, ..., \textbf{X_N}. \textbf{X_\{i+1\}=(A*X_i+B) mod M}.
Следующая строка входного файла содержит целое число \textbf{K} (\textbf{1} ≤ \textbf{K} ≤ \textbf{200000}) - количество запросов, которые необходимо выполнить Вашему менеджеру памяти.
Далее в \textbf{K} строках содержится описание запросов. Запросы заданы в формате:
\begin{itemize}
\item \textbf{cpy a b l} - для операции \textbf{copy};
\item \textbf{sum l r} - для операции \textbf{sum} (\textbf{l} ≤ \textbf{r});
\item \textbf{out l r} - для операции \textbf{print} (\textbf{l} ≤ \textbf{r}).
\end{itemize}
Гарантируется, что суммарная длина запросов \textbf{print} не превышает \textbf{3000}. Также гарантируется, что все запросы корректны.
\OutputFile
Для каждого запроса \textbf{sum} или \textbf{print} выведите в выходной файл на отдельной строке результат запроса.
Input example #1
6 1 4 5 7 7 out 1 6 cpy 1 3 2 out 1 6 sum 1 4 cpy 1 2 4 out 1 6 sum 1 6
Output example #1
1 2 6 1 2 6 1 2 1 2 2 6 6 1 1 2 1 2 6 13