VOXOR - XOR dãy số

Giới hạn
  • Thời gian: 1.0s
  • Bộ nhớ: 1536MB
  • Mã nguồn: 50000 bytes

Ghi chú: Các bài VNOI đã được chuyển qua VNOJ (Thông báo). Đề bài trên VNOI và vn.spoj.com sẽ không được cập nhật nữa. Một số đề bài không chính xác sẽ chỉ được cập nhật trên VNOJ. Bạn vẫn có thể tìm kiếm đề bài trên VNOI.

Link đọc đề trên VNOJ

Đọc đề đẹp hơn ở:
https://codeforces.com/group/FLVn1Sc504/contest/274862/problem/Q
https://codeforces.com/group/FLVn1Sc504/contest/271722/problem/B

Cho dãy A gồm N số nguyên không âm. Ta lần lượt thực hiện Q thao tác trên tập hợp này:

  • XOR x : Với mọi i, A i = A i xor x
  • FIND k : Tìm số lớn thứ k trong dãy A .

Yêu cầu: Thực hiện các truy vấn trên.

Input

Dòng đầu tiên ghi 2 số N Q .

Dòng thứ hai ghi N số là giá trị ban đầu của dãy A .

Tiếp theo là Q dòng, mỗi dòng ghi 1 trong 2 loại truy vấn.

Output

Với mỗi truy vấn loại FIND , in ra kết quả tìm được.

Giới hạn

Subtask 1 (25%)

  • N , Q ≤ 5000
  • 0 ≤ A i ≤ 10 9
  • 0 ≤ x ≤ 10 9 .

Các subtask 2, 3 và 4 tiếp theo đều có

  • N ≤ 10 5
  • Q ≤ 10 5
  • 0 ≤ A i ≤ 10 9

Subtask 2 (40%)

  • 0 ≤ x ≤ 100

Subtask 3 (10%):

  • 0 ≤ x ≤ 10 9
  • x luôn có dạng 2 k

Subtask 4 (25%):

  • 0 ≤ x ≤ 10 9

Ví dụ

Input:
4 9
1 2 3 4
FIND 1
FIND 2
FIND 3
FIND 4
XOR 6
FIND 1
FIND 2
FIND 3
FIND 4
Output:
4
3
2
1
7
5
4
2

Giải thích

Trước truy vấn XOR 6, dãy số là 1 2 3 4.

Sau truy vấn XOR 6, dãy số là 7 4 5 2.


  • Người up: voj
  • Nguồn bài: VNOI Online 2016