У вас є масив довжиною . Вам дають запитів двох типів:
змінити -те число в масиві на ;
знайти -те число в масиві .
Перший рядок містить два цілих числа та (1 \leq n \leq 100,\ 1 \leq m \leq 1000) — довжина масиву та кількість запитів.
Другий рядок містить цілих чисел a_1,\ a_2,\ \ldots,\ a_n (1 \leq a_i \leq 100) — числа масиву.Кожний з наступних рядків описує запит і має один з наступних форматів:
1 p v (1 \leq p \leq n, 1 \leq v \leq 100) — позиція та нове число.
2 p (1 \leq p \leq n) — позиція.
Вам потрібно реалізувати три функції:
void init(integer n, array of integers a)
— довжина масиву;
— масив цілих чисел;
ця функція викликається першою лише один раз. Вона потрібна для того,щоб повідомити вам розмір масиву та сам масив. Лише після виклику цієїфункції будуть викликатись інші дві.
void upd(integer p, integer v)
— позиція;
— нове число;
ця функція викликається, коли потрібно задати запит першого типу.
integer ask(integer p)
— позиція;
ця функція викликається, коли потрібно задати запит другого типу;
функція має повернути ціле число—відповідь на запит.
Після кожного запиту другого типу буде виведене одне ціле число — відповідь на нього.
Приклад 1
Блоки:
(20 балів) n \leq 10; m \leq 100; a_i, v_i \leq 20;
(20 балів) n \leq 30; m \leq 300; a_i, v_i \leq 30;
(20 балів) n \leq 50; m \leq 500; a_i, v_i \leq 50;
(20 балів) n \leq 75; m \leq 750; a_i, v_i \leq 75;
(20 балів) без додаткових обмежень.