Điều hướng chính

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Xor và số lớn thứ K

Dễ

  • 100 Điểm
  • 0% Tỉ lệ AC
  • 0 Số AC
  • 256M Bộ nhớ giới hạn
  • 1.0s Giới hạn thời gian

Cho một dãy số nguyên \(A\) gồm \(n\) phần tử ban đầu. Bạn cần xử lý \(Q\) truy vấn, mỗi truy vấn thuộc một trong hai loại sau:

  • Truy vấn loại 1: dòng có dạng \(1\ x\) --- nghĩa là gán lại \(a_i := a_i \oplus x\) với mọi \(1 \le i \le n\).
  • Truy vấn loại 2: dòng có dạng \(2\ k\) --- nghĩa là in ra phần tử lớn thứ \(k\) trong dãy hiện tại (phần tử lớn thứ nhất là lớn nhất).

Input

  • Dòng đầu tiên chứa hai số nguyên \(n\) và \(Q\) \((1 \le n, Q \le 10^5)\) --- số phần tử ban đầu và số truy vấn.
  • Dòng thứ hai chứa \(n\) số nguyên \(a_1, a_2, \dots, a_n\) \((0 \le a_i < 2^{30})\) --- các phần tử ban đầu của dãy \(A\).
  • Mỗi dòng trong \(Q\) dòng tiếp theo chứa một truy vấn theo định dạng:

  • \(1\ x\) \((0 \le x < 2^{30})\) --- truy vấn loại 1.

  • \(2\ k\) \((1 \le k \le n)\) --- truy vấn loại 2.

Output

  • Với mỗi truy vấn loại 2, in ra một dòng chứa số nguyên là phần tử lớn thứ \(k\) hiện tại trong dãy.

Example

Test 1

Input
5 4
3 2 6 0 2
2 2
1 4
2 2
2 3
Output
3
6
6

Scoring

\begintabular|c|c|l|
\hline
Subtask & Điểm & Ràng buộc

\hline
1 & 20 & \(n, Q \le 1000\)

2 & 30 & \(x \le 200\)

3 & 50 & Không có ràng buộc bổ sung

\hline
\endtabular

Bình luận

Chưa có bình luận nào.