Trạng thái

Cho một tập \(A\), ban đầu tập không có phần tử nào. Chúng ta thực hiện các thao tác sau áp dụng lên tập:

  • \(INSERT\ x\): Thêm giá trị \(x\) vào tập \(A\). Nếu trong tập đã có thì không làm gì.

  • \(DELETE\ x\): Nếu trong tập có phần tử \(x\) thì xóa nó khỏi tập, ngược lại thì không làm gì.

  • \(ASK\ x\): Trả về “Yes” nếu \(x\) có trong \(A\), “No” nếu ngược lại.

  • \(L\ x\): Trả về giá trị phần tử lớn nhất bé hơn \(x\), nếu không có thì in ra -1.
  • \(G\ x\): Trả về giá trị phần tử nhỏ nhất lớn hơn \(x\), nếu không có thì in ra -1.

Yêu cầu

Cho \(m\) truy vấn thuộc 1 trong 5 dạng trên, trả lời lần lượt các truy vấn dạng 3, 4, 5.

Input

  • Dòng đầu chứa số \(m\).
  • \(m\) dòng tiếp theo, mỗi dòng chứa 1 loại truy vấn,

Output

  • Trả lời các truy vấn loại 3, 4, 5.

Giới hạn

  • \(0< m,|x|\leq 100000\)

Sample Input

6
INSERT 5
INSERT 10
DELETE 10
ASK 10
INSERT 3
L 4

Sample Output

No
3
Thông tin
Thông tin bài tập
Gửi bài giải
Điểm
100
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
250 M
I/O
stdin -> stdout
Tác giả
Loại đề bài
C - Cấu trúc dữ liệu nâng cao: 05 - Set
Ngôn ngữ cho phép
C#, C++