Outra tarefa sobre consultas em um array
                                         
                                         
                            
                             
                                         
                                          Problem 
                         
                                 Você recebe uma matriz 
a de tamanho 
n e 
q consultas a ela. Existem dois tipos de pedidos:
- 
1 li ri — realizar um deslocamento cíclico do segmento [li, ri] para a direita . Ou seja, para todo x tal que li ≤ x  < ; ri, ax + 1 sub > torna-se igual ao valor anterior ax e ali torna-se igual ao valor anterior  ;ari;
 
- 
2 li ri — inverta o segmento [li, ri].
 
 
É necessário enviar o array após todas as requisições terem sido processadas.
 
Entrada
A primeira linha contém dois números inteiros 
n e 
q (1 ≤ 
n, 
q < /em> ≤ 2·105).
A segunda linha contém n inteiros a1, a2 sub>, ..., an (1 ≤ ai  ≤ 109).
Em seguida vêm q linhas. O iésimo deles contém três números inteiros ti, li  em>, ri, onde ti — digite iª consulta, [li, ri >] — segmento no qual a consulta é executada (1 ≤ ti ≤ 2, 1 ≤ l < sub>i ≤ 
ri ≤ 
n). < br />
 
Impressão
Imprimir 
m números, 
ith dos quais é igual ao número na posição 
bi  ;após o processamento de todas as solicitações.
| 
Entrar | 
Saída | 
| 
 
6 3 
 | 
1 3 2 6 5 4
 | 
(c) Kurbatov E., 2018