eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Запити

Запити

Лимит времени 1 секунда
Лимит использования памяти 64 MiB

У вас є масив a довжиною n. Вам дають q запитiв двох типiв:

  1. змiнити p-те число в масивi a на v;

  2. знайти p-те число в масивi a.

####Протокол взаємодiї

Вам потрiбно реалiзувати три функцiї:

void init(integer n, array of integers a)

  • n — довжина масиву;

  • a — масив цiлих чисел;

  • ця функцiя викликається першою лише один раз. Вона потрiбна для того,щоб повiдомити вам розмiр масиву та сам масив. Лише пiсля виклику цiєїфункцiї, будуть викликатись iншi двi.

void upd(integer p, integer v)

  • p — позицiя;

  • v — нове число;

  • ця функцiя викликається, коли потрiбно задати запит першого типу.

integer ask(integer p)

  • p — позицiя;

  • ця функцiя викликається, коли потрiбно задати запит другого типу;

  • функцiя має повернути цiле число—вiдповiдь на запит.

Входные данные

Перший рядок мiстить два цiлих числа n та m (1 ⩽ n ⩽ 100, 1 ⩽ m ⩽ 1 000) — довжина масиву та кiлькiсть запитiв.

Другий рядок мiстить n цiлих чисел a[1]; a[2]; : : : ; a[n] (1 ⩽ a[i] ⩽ 100) — числа масиву.Кожний з наступних m рядкiв описує запит i має один з наступних форматiв:

  1. «1 p v» (1 ⩽ p ⩽ n, 1 ⩽ v ⩽ 100) — позицiя та нове число.

  2. «2 p» (1 ⩽ p ⩽ n) — позицiя.

Выходные данные

Пiсля кожного запиту другого типу буде виведене одне цiле число—вiдповiдьна нього.

####Блоки:

  1. (20 балiв) n ⩽ 10; m ⩽ 100; a[i]; v[i] ⩽ 20;

  2. (20 балiв) n ⩽ 30; m ⩽ 300; a[i]; v[i] ⩽ 30;

  3. (20 балiв) n ⩽ 50; m ⩽ 500; a[i]; v[i] ⩽ 50;

  4. (20 балiв) n ⩽ 75; m ⩽ 750; a[i]; v[i] ⩽ 75;

  5. (20 балiв) без додаткових обмежень.

Пример

Входные данные #1
5 7
1 2 3 4 5
2 3
1 1 3
1 3 9
2 1
2 2
2 3
2 5
Выходные данные #1
3
3
2
9
5