CSES - Palkat
  • Time limit: 1.00 s
  • Memory limit: 128 MB
Yrityksessä on $n$ työntekijää, joilla jokaisella on tietty palkka. Tehtäväsi on pitää kirjaa palkoista ja vastata kyselyihin niihin liittyen.

Syöte

Syötteen ensimmäisellä rivillä on kaksi lukua $n$ ja $q$: työntekijöiden määrä ja kyselyiden määrä. Työntekijät on numeroitu kokonaisluvuin $1,2,\ldots,n$.

Seuraavalla rivillä on $n$ kokonaislukua $p_1,p_2,\ldots,p_n$: kunkin työntekijän palkka.

Sitten syötteessä on $q$ riviä, joista jokainen kuvaa yhden kyselyn. Rivin muoto on jompikumpi seuraavista:
  • ! $k$ $x$: muuta työntekijän $k$ palkaksi $x$
  • ? $a$ $b$: monenko työntekijän palkka on välillä $a \ldots b$?
Tuloste

Ohjelmasi tulee tulostaa vastaus jokaiseen ?-kyselyyn.

Rajat
  • $1 \le n, q \le 10^5$
  • $1 \le p_i \le 10^9$
  • $1 \le k \le n$
  • $1 \le x \le 10^9$
  • $1 \le a \le b \le 10^9$
Esimerkki

Syöte:
5 3
3 7 2 2 5
? 2 3
! 3 6
? 2 3


Tuloste:
3
2