oglinda

Time limit: 0.03s Memory limit: 16MB Input: oglinda.in Output: oglinda.out

Pentru un număr natural NN se consideră șirul a=(1,2,3,...,N)a = (1, 2, 3, ..., N), deci ai=ia_i = i pentru orice ii, 1iN1 ≤ i ≤ N.
Asupra acestui șir se pot aplica operații de două tipuri:

  1. La operația de tipul 1 se specifică două valori ii și jj, cu 1ijN1 ≤ i ≤ j ≤ N. Efectul acestei operații asupra șirului este de oglindire a secvenței din șir care începe cu elementul de pe poziția ii și se termină cu cel de pe poziția jj. De exemplu, dacă în șirul a=(1,2,3,4,5,6,7)a = (1, 2, 3, 4, 5, 6, 7) se aplică operația 3 63 \ 6, atunci șirul devine a=(1,2,6,5,4,3,7)a = (1, 2, 6, 5, 4, 3, 7). Iar în șirul a=(1,4,3,2,5,6,7)a = (1, 4, 3, 2, 5, 6, 7), dacă se aplică operația 4 64 \ 6, atunci a=(1,4,3,6,5,2,7)a = (1, 4, 3, 6, 5, 2, 7).
  2. Operația de tipul 2 conține un indice ii, 1iN1 ≤ i ≤ N, și cere să afișăm valoarea elementului care se află în acel moment pe poziția ii în șir.

Se consideră MM astfel de operații într-o ordine dată.

Cerința

Scrieți un program care să determine și să afișeze rezultatul pentru fiecare operație de tipul 22.

Date de intrare

Fișierul de intrare oglinda.in conține pe prima linie două numere naturale NN și MM, separate printr-un spațiu. Pe fiecare dintre următoarele MM linii este specificată câte o operație de tipul 11 sau 22. O linie poate să conțină două sau trei numere, astfel: 1 i j (indicând o operație de tipul 11) respectiv 2 i (indicând o operație de tip 22). Valorile de pe aceeași linie sunt separate prin câte un spațiu.

Date de ieșire

Fișierul de ieșire oglinda.out conține un număr de linii egal cu numărul de operații de tipul 22 care sunt definite în fișierul de intrare. Pe fiecare linie este afișat câte un număr natural reprezintând rezultatul pentru o operație de tip 22 prezentă în fișierul de intrare, în ordinea în care acestea sunt definite.

Restricții și precizări

  • 1N1 000 0001 ≤ N ≤ 1 \ 000 \ 000
  • 1M2 0001 ≤ M ≤ 2 \ 000
  • Pentru teste în valoare de 4040 de puncte, vom avea 1N2 0001 ≤ N ≤ 2 \ 000.
  • Se garantează că 1ijN1 ≤ i ≤ j ≤ N la operațiile de tipul 11 și că 1iN1 ≤ i ≤ N la operațiile de tip 22.
  • Se garantează că există cel puțin o operație de tipul 22.

Exemplu

oglinda.in

10 4
2 3
1 2 7
2 3
2 1

oglinda.out

3
6
1

Explicație

Șirul inițial este: 1 2 3 4 5 6 7 8 9 101 \ 2 \ 3 \ 4 \ 5 \ 6 \ 7 \ 8 \ 9 \ 10
Rezultatul operației 2 32 \ 3 are ca efect afișarea elementului de pe poziția 33 (care este chiar 3).
Rezultatul operației 1 2 71 \ 2 \ 7 are ca efect transformarea șirului în: 1 7 6 5 4 3 2 8 9 101 \ 7 \ 6 \ 5 \ 4 \ 3 \ 2 \ 8 \ 9 \ 10.
Rezultatul operației 2 32 \ 3 are ca efect afișarea elementului de pe poziția 33 (care acum este 66).
Rezultatul operației 2 12 \ 1 are ca efect afișarea elementului de pe poziția 11 (care acum are valoarea 11).

Log in or sign up to be able to send submissions!