Một mảng gồm phần tử được xem là phiên bản . Sau đó có thao tác, đánh số từ đến ; thao tác thứ luôn tạo ra phiên bản .
Mỗi thao tác chọn một phiên bản đã tồn tại và thuộc một trong hai loại:
- : phiên bản ban đầu giống phiên bản , sau đó phần tử ở vị trí được đổi thành .
- : in phần tử ở vị trí của phiên bản ; phiên bản là một bản sao không thay đổi của phiên bản .
Vì thao tác đọc cũng tạo phiên bản, mọi phiên bản từ đến đều có thể được tham chiếu trong các thao tác về sau.
Input
- Dòng đầu chứa hai số nguyên và .
- Dòng thứ hai chứa số nguyên , là phiên bản .
- Mỗi dòng trong dòng tiếp theo mô tả một thao tác theo một trong hai dạng hoặc .
Output
- Với mỗi thao tác loại , in giá trị được đọc trên một dòng.
Constraints
- .
- .
- .
- Ở thao tác thứ .
Scoring
- Subtask ( số điểm): .
- Subtask ( số điểm): Không có giới hạn bổ sung.
Example
Test 1
Input
4 6 5 8 2 9 0 2 2 0 1 3 7 2 2 3 1 1 2 -4 4 2 2 2 2 2
Output
8 7 -4 8
Giải thích: Phiên bản đổi vị trí thành , còn phiên bản tách từ phiên bản và đổi vị trí thành . Truy vấn cuối vẫn đọc phiên bản nên nhận ở vị trí , không bị ảnh hưởng bởi nhánh phiên bản .